
c++
chde2Wang
滴水穿石
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
pycharm 配置qt
在cmd中 pip install pyqt5-tools原创 2021-06-22 18:31:45 · 224 阅读 · 0 评论 -
To disable deprecation,,use _CRT_SECURE_NO_WARNINGS
解决方法:ok,也就是加入一个_CRT_SECURE_NO_WARNINGS的问题。转载自https://blog.youkuaiyun.com/guoming0000/article/details/8838810或者在cpp文件最顶端添加:#define _CRT_SECURE_NO_WARNINGS...转载 2019-04-22 21:21:00 · 3845 阅读 · 3 评论 -
递归题型解析
#include<iostream>using namespace std;int foo(int n) { if (n < 1) return n; return (foo(n - 1) + foo(n - 2));}int main() { printf("%d\n", foo(5)); return 0;}解析:foo(5)=foo(4)...原创 2019-08-25 15:54:29 · 321 阅读 · 0 评论 -
函数返回值失效
#include<stdio.h>#include<stdlib.h>#include<string.h>#if 1char* getMen2() { char buf[64]; //临时变量,栈区存放 strcpy(buf, "abccddeeff"); printf("buf:%s\n", buf); return buf; //此处并...原创 2019-07-16 20:54:37 · 431 阅读 · 0 评论 -
exp和e区分
exp(n)代表e的多少次 exp(1)=2.71e-1表示10^-1次 e-1=0.1原创 2019-06-03 12:54:41 · 8012 阅读 · 0 评论 -
C++中log的底数理解
C++ 中log是以e为底的log10 是以10为底的现在来看看为什么底数具体为多少不重要?读者只需要掌握(依稀记得)中学数学知识就够了。 假设有底数为2和3的两个对数函数,如上图。当X取N(数据规模)时,求所对应的时间复杂度得比值,即对数函数对应的y值,用来衡量对...原创 2019-05-22 12:53:23 · 8246 阅读 · 0 评论 -
二叉树---树的深度递归理解
int Dep(Bianary *root){ if (root == NULL) { return 0; } int depth = 0; int leftD = Dep(root->lchild); int rightD = Dep(root->rchild); depth = leftD > rightD ? leftD + 1 : right...原创 2019-04-17 19:51:51 · 1603 阅读 · 5 评论 -
C++ 递归函数返回值理解
首先看代码:#include <iostream>using namespace std;int main(){ int digui(int i); int i; cin>>i; i = digui(i); cout << "main函数最后结果:"<<i<<endl;}int digui(int i){ i...原创 2019-04-17 17:55:30 · 2770 阅读 · 0 评论 -
#if 0 #elif 1 #else #endif 用法
跟我们平时用的if,else if,else一样,不同的是这里一定要记得#endif#include<iostream>using namespace std;# if 1int main() { cout << "if 0" << endl;}#elif 1int main(){ cout << "elif 1" <...原创 2019-04-03 20:00:56 · 1371 阅读 · 0 评论 -
STL1-函数模板
1、函数模板和普通函数区别//普通函数可以进行自动类型转换,//函数模板必须精确类型匹配;//函数模板可以被重载;c++优先考虑普通函数;#include<iostream>using namespace std;//函数模板-->产生模板函数-->调用函数template<class T>T MyAdd(T a, T b){ cou...原创 2019-06-23 20:30:01 · 244 阅读 · 0 评论 -
C++基础03-C++对c的拓展-函数
一、内联函数c 语言中有宏函数的概念。宏函数的特点是内嵌到调用代码中去,避免了函数调用 的开销。但是由于宏函数的处理发生在预处理阶段,缺失了语法检测 和有可能带来的语 意差错。特点: 1)内联函数声明时inline关键字必须和函数定义结合在一起,否则编译器会直接忽略内联请求。 2)C++编译器直接将函数体插入在函数调用的地方 。 3)内联函数没有普...原创 2019-08-08 15:44:42 · 177 阅读 · 0 评论 -
C++基础02-C++对c的拓展
变量名实质上是一段连续存储空间的别名,是一个标号(门牌号) 通过变量来申请并命名内存空间. 通过变量的名字可以使用存储空间. 变量名,本身是一段内存的引用,即别名(alias). 引用可以看作一个已定义变量的别名。 引用的语法:Type& name = var; int a=10;//c编译器分配4个字节内存, a内存空间的别名 int &b=a; ...原创 2019-08-04 18:58:44 · 240 阅读 · 0 评论 -
C++混淆点-static关键字理解
.先来介绍它的第一条也是最重要的一条:隐藏。(static函数,static变量均可)当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。举例来说明。同时编译两个源文件,一个是a.c,另一个是main.c。//a.cchar a = 'A'; // global variablevoid msg(){ printf("Hello\n");}...转载 2019-08-04 15:37:48 · 224 阅读 · 0 评论 -
Leedcode7-binary-tree-postorder-traversal
#include<iostream>#include<vector>#include<stack>using namespace std;// Definition for binary tree 先序遍历 根左右struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeN...原创 2019-07-22 18:20:27 · 136 阅读 · 0 评论 -
STL12-queue容器
queue容器 队列容器 先进先出队列只能在一端插入 一端删除队列不能遍历 不提供迭代器 不支持随机访问#if 1#include<iostream>#include<queue>using namespace std;void test01() { queue<int> q; //创建队列 queue<int> q...原创 2019-07-22 15:16:49 · 244 阅读 · 0 评论 -
STL11-stack容器
#if 1#include<iostream>#include<stack>using namespace std;void test01() { //初始化 stack<int> s1; stack<int> s2(s1); //stack操作 s1.push(10); s1.push(20); s1....原创 2019-07-22 14:46:23 · 152 阅读 · 0 评论 -
C++随机数(rand和srand)函数用法详解
C++ 提供了一组函数以生成和使用随机数字。随机数字就是从一组可能的值中进行随机选择而获得的一个值。该组中的值都有相同的被选中的几率。随机数字常用于许多不同类型的程序中,以下是一些示例:计算机游戏通常要使用随机数字来模拟一些随机过程,例如掷骰子或发牌。 模拟程序使用随机数字来决定后续将要发生的一系列操作或人与动物等的行为。可以创建使用随机数字的公式以确定特定事件在程序中出现的时间。 数据...转载 2019-07-22 13:58:30 · 466 阅读 · 0 评论 -
C++基础01-C++对c的增强
所谓namespace,是指标识符的各种可见范围。C++标准程序库中的所 有标识符都被定义于一个名为std的namespace中。 一 :<iostream>和<iostream.h>格式不一样,前者没有后缀,实际上, 在你的编译器include文件夹里面可以看到,二者是两个文件,打开文件就会发现,里面的代码是不一样的。后缀为.h的头文件c++标准已经明确提出不支持了...原创 2019-08-02 16:52:32 · 132 阅读 · 0 评论 -
C++基础04-类基础
一、类和对象面向对象三大特点:封装、继承、多态。 struct 中所有行为和属性都是 public 的(默认)。C++中的 class 可以指定行为和属性的访问方式。 封装,可以达到,对内开放数据,对外屏蔽数据,对外提供接口。达到了信息隐蔽的功能。 class 封装的本质,在于将数据和行为,绑定在一起然后能过对象来完成操作。 #if 1#define _CRT_SECU...原创 2019-08-08 22:05:05 · 195 阅读 · 0 评论 -
C++基础12-类和对象之操作符重载-string练习
总结:1、等号操作符重载注意事项: (1)防止自身赋值 (2)先将自身的额外开辟的空间回收掉 (3)执行深拷贝2、注意函数的返回引用或者元素:如果需要连续使用 返回元素3、如果一个函数传递const修饰的对象,那么此对象调用的成员函数也应为const类型4、重载小括号 称这种对象为仿函数5、字符串>>重载时防止初始化的字符串长度为空MyStrin...原创 2019-08-13 17:10:11 · 148 阅读 · 0 评论 -
STL Map学习总结
1、 Map是关联容器,以键值对的形式进行存储,方便进行查找,关键词起到索引的作用,值则表示与索引相关联的数据,以红黑树的结构实现,插入删除等操作都可以在O(log n)时间内完成2、它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。//map关联容器//提供一对一的关系,一个map项包括两个数据段...原创 2018-10-10 21:13:28 · 237 阅读 · 0 评论 -
C++基础11-类和对象之操作符重载2
总结:1、等号操作符重载和拷贝构造函数重载一般用在数据成员中需要单独在堆区开辟内存时(指针)2、new,delete重载内部还是使用malloc和free3、逗号表达式(,)、或者(||),且(&&),条件表达式(?:)具有短路功能。 但重载后失去此功能,故不建议重载这两个运算符4、自定义智能指针auto_ptr(在c++11新特性中已经被移除)是一个模板类。...原创 2019-08-12 21:54:46 · 202 阅读 · 0 评论 -
C++基础10-类和对象之友元函数
采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分,但又需要频繁地访问类的数据成员, 这时可以将这些函数定义为该 函数的友元函数。除了友元函数外,还有友元类, 两者统称为友元。友元的作用是提高了程序的运行效率(即减少了类型检查和 安全性检查等都需要时间开销),但它破坏了类的...原创 2019-08-11 17:26:59 · 547 阅读 · 0 评论 -
C++基础09-货物售卖和MyArray实现
1、货物出货与进货#if 0#include<iostream>using namespace std;/*某商店经销一种货物。货物购进和卖出时以箱为单位。各箱的重量不一样,因此商店需要记录目前库存的总重量,现在用C++模拟商店货物购进和卖出的情况*/class Goods {public: Goods() { weight = 0; next = N...原创 2019-08-11 16:09:25 · 557 阅读 · 0 评论 -
C++基础07-类之静态成员变量和成员函数
总结:1、静态数据成员和静态成员函数属于整个类而不是某个对象 即使没有定义对象,静态成员也是存在的2、static 成员类外存储,求类大小,并不包含在内。 (因为存储在全局区,而类一般存储在栈区)3、静态数据成员在类中说明,在类外定义 并且会给他分配内存空间,并初始化(一经定义则必须初始化)4、静态数据成员的生存周期一直存在于整个程序的生命周期4、静态成员函数只能访问静...原创 2019-08-10 17:44:06 · 474 阅读 · 0 评论 -
C++基础06-类与对象之new和malloc
1、C和C++动态分配内存区别: 在C语言中是利用库函数malloc和free来分配和撤销内存空间的。 C++提供了较简便而功能较强的运算符new和delete来取代 malloc和free函数。new和delete是运算符,不是函数,因此执行效率高。2、new和delete的用法<1>用法示例:new int; //开...原创 2019-08-10 15:24:02 · 886 阅读 · 0 评论 -
C++基础05-类构造函数与析构函数
总结:1、类对象的作用域为两个{}之间。在遇到}后开始执行析构函数2、当没有任何显式的构造函数(无参,有参,拷贝构造)时,默认构造函数才会发挥作用 一旦提供显式的构造函数,默认构造函数不复存在,默认构造函数都会被覆盖掉。若想调用,则显示提供默认构造函数3、析构函数不能重载,没有参数,没有返回值。显示提供析构,默认析构就会被覆盖掉4、当调用默认构造函数时,类对象的数据成员值...原创 2019-08-09 17:39:10 · 410 阅读 · 0 评论 -
C/C++混淆点-字符串指针
c语言中没有字符串的类型,所以对字符串操作,有两种形式:可以用字符指针,或者字符串数组(这里的指针变量c, 系统会为其重新分配内存)(1)用字符数组存放一个字符串char string[]="Linux C";printf("%s\n",string);string是一个字符数组名,它同时也是该字符数组的首地址。(2)用字符...转载 2019-08-09 16:53:04 · 427 阅读 · 0 评论 -
C++混淆点-构造函数参数
#include<iostream>using namespace std;class Test {public: //Test(int x, int y) { //或者将形参名不要等于数据成员名 // //x = x; //自赋值 错误 // //y = y; // this->x = x; //正确 形参a屏蔽了成员变量a,所以必须用this指针索引,这...原创 2019-08-09 13:21:29 · 203 阅读 · 0 评论 -
C++编译运行过程分析
为了减轻使用机器语言编程的痛苦,人们进行了一种有益的改进:用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串,比如,用“A D D”代表加法,“M O V”代表数据传递等等,这样一来,人们很容易读懂并理解程序在干什么,纠错及维护都变得方便了,这种程序设计语言就称为汇编语言,即第二代计算机语言。然而计算机是不认识这些符号的,这就需要一个专门的程序,专门负责将这些符号翻译成二进制数的机器语言,...转载 2019-06-23 17:25:55 · 539 阅读 · 0 评论 -
C++迭代器的使用和操作总结
目录一.定义和初始化 二.常用操作 三.迭代器const_iterator 四.使迭代器失效的操作正文 迭代器是一种检查容器内元素并遍历元素的数据类型。C++更趋向于使用迭代器而不是下标操作,因为标准库为每一种标准容器(如vector)定义了一种迭代器类型,而只用少数容器(如vector)支持下标操作访问容器元素。一.定义和初始化 每种容器都定义了自己的迭代器类型...原创 2019-06-05 20:00:08 · 214 阅读 · 0 评论 -
opencv Hog学习总结
一、方向梯度梯度:在向量微积分中,标量场的梯度是一个向量场。标量场中某一点上的梯度指向标量场增长最快的方向,梯度的长度是这个最大的变化率。更严格的说,从欧几里得空间Rn到R的函数的梯度是在Rn某一点最佳的线性近似。在这个意义上,梯度是雅可比矩阵的一个特殊情况。在单变量的实值函数的情况,梯度只是导数,或者,对于一个线性函数,也就是线的斜率。在图像中梯度的概念也是像素值变换最快的方向,把边...原创 2019-04-23 14:25:43 · 663 阅读 · 0 评论 -
图像分类 数据准备(将文件夹中所有图片路径写到TXT文件中)
0文件夹里都是负样本,1文件夹的图像都是正样本图片,接下来就是生成图片的描述文件。进入控制台进入你的0/1文件夹下,输入以下命令:dir /b/s/p/w *.jpg > pos.txt,dir /b/s/p/w *.jpg > neg.txt,如果你的图片是png就需要将jpg改成png,然后再对应的文件加下看到以下文件。参考自:https://bl...原创 2019-04-23 13:24:29 · 2131 阅读 · 0 评论 -
opencv Hog Demo
需注意此代码要在Release x64之下运行#include <iostream>#include <stdexcept>#include <opencv2/objdetect.hpp>#include <opencv2/highgui.hpp>#include <opencv2/imgproc.hpp>#includ...原创 2019-04-23 11:11:11 · 267 阅读 · 0 评论 -
C++ 整数除法保留小数
#include <iostream> #include <iomanip>using namespace std;int main(){ int a,b; cin>>a>>b; int C = a / b; cout<<C<<endl; double e = a, f = b; double D = ...转载 2019-04-23 10:28:11 · 48342 阅读 · 2 评论 -
opencv waitKey() 函数理解及应用
waitKey仅对窗口机制起作用,即namedWindow产生的窗口。若在此之前没有产生窗口,则waitKey相当于未执行。注:namedWindow产生的窗口: namedWindow()+imshow() 或者 只有imshow() 都是可以的。此时imshow()在waitKey()之前,否则也是不起作用的。openv中对cvWaitkey函数的定义如下:int...原创 2019-04-14 13:55:00 · 1460 阅读 · 0 评论 -
C++ const 引用 指针答疑
常变量 const int a常引用 const int &a常指针 const int *aconst * int a用法1:常量 取代了C中的宏定义,声明时必须进行初始化(!c++类中则不然)。const限制了常量的使用方式,并没有描述常量应该如何分配。如果编译器知道了某const的所有使用,它甚至可以不为该const分配空间。最简单的常见情况就是常量的值在...原创 2018-11-22 12:59:26 · 226 阅读 · 0 评论 -
C++运行界面一闪而过解决
#include<iostream>#include <stdlib.h> #切记导入这个头文件using namespace std; int main() {cout << "Hello Word"<<endl;system("pause"); #让界面不是一闪而过return 0;}注意:VS2012以上版本才支持C+...原创 2018-10-14 15:49:42 · 5202 阅读 · 0 评论 -
C++根据输入日期YYYY-MM-DD判断是否星期几
参考链接:https://blog.youkuaiyun.com/bible521125/article/details/50418436https://blog.youkuaiyun.com/tojohnonly/article/details/78326633https://blog.youkuaiyun.com/fengbingchun/article/details/54835571原创 2018-09-25 22:16:25 · 893 阅读 · 0 评论 -
C++ 一个字符串只包含K和D。K表示杀人,D表示死亡。计算连续杀敌次数,阵亡则归零。
题: 首先笔者的第一思路是前后两个字符串比较。如果相同index++。#include<iostream>#include<stdio.h>#include<string>using namespace std;int main(){ string s; cout << "6请输入字符串:" << endl;...原创 2018-09-25 19:50:56 · 245 阅读 · 0 评论