1、如果
string str("hello");
cout << str;
出错了,那是因为没有加上#include<string>头文件
2、如果项目文件夹debug中的应用程序运行结果没有或者和程序调试结果不一样,可能是没有在debug文件夹中加上程序中用到的相对路径的文件。
3、报错 stack overflow,是栈溢出了,windows默认栈的大小是1M,栈区是由编译器自动分配释放,存放函数参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
如果是栈溢出了,可能是分配的局部变量太大太多,比如数组大小超过1M就会报错,可以用new分配数组,用new分配占的内存是在堆中,堆的大小是可以随意分配的,只要不超过机器运行内存。
4、输入输出字符串流,包含头文件#include<sstream>,
string imageSaveName;
stringstream stream;
stream.clear();
stream << "C:\\Users\\TangQingYun\\Documents\\Visual Studio 2013\\Projects\\AviToImage\\" ;
stream.str();
stream >> imageSaveName;
输出imageSaveName为
C:\\Users\\TangQingYun\\Documents\\Visual,因为
stream >> imageSaveName;遇空格就停止了。
5、如果用ofstream写文件,写不进去,可能是因为写完文件后没有close文件夹。
6、输入一个字符串到一个stringstream中,再输入另一个字符串到这个stringstream中时,要清空这个stringstream,清空stringstream不是用stream.clear(),而是用stream.str("")。
7、由于数组在定义初始化时,如果要确定数组的维度,维度必须为常量,在编译时能确定的量,而真实情况是往往我们需要运行时才能知道我们要定义多大的数组,这个时候可以用动态数组。
8、在调用函数时,我们需要改变输入到函数的值,这个时候这个形参设置成指针,然后调用时加&。
9、函数形参为引用&格式,在调用函数时不需要加&。
10、多层for循环,外层循环尽量小一点,把多的循环加到内层。
11、定义一个成员函数,如果函数调用的对象是const常量,那么最好把函数定义为const函数。
12、报错:cannot have cv-qualifier//不能有CV限定
在C++中CV指const和volatile—1、非成员函数不能有CV限定,2、静态成员函数不能有CV限定
13、double=int/int 在求这种格式时,要把分子分母int型强制转换为double型:double=(double)int/(double)int