随笔分类 - C++
摘要:把最近用到的各种unicode下类型转换总结了一下:1、string转CStringstring a=”abc”;CString str=CString(a.c_str());或str.format("%s",a.c_str())2、int转CStringInt a;CString Cstr;Cst...
阅读全文
摘要:单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。例如,你可能把一个很大的值放入一个有序list 中去,然后确认该值出现在list 的尾部。或者,你可能会从字符串中删除匹...
阅读全文
摘要:(1)vector内部数据结构:数组。随机访问每个元素,所需要的时间为常量。在末尾增加或删除元素所需时间与元素数目无关,在中间或开头增加或删除元素所需时间随元素数目呈线性变化。可动态增加或减少元素,内存管理自动完成,但程序员可以使用reserve()成员函数来管理内存。vector的迭代器在内存重新分配时将失效(它所指向的元素在该操作的前后不再相同)。当把超过capacity()-size()个元素插入vector中时,内存会重新分配,所有的迭代器都将失效;否则,指向当前元素以后的任何元素的迭代器都将失效。当删除元素时,指向被删除元素以后的任何元素的迭代器都将失效。(2)deque内部数据结构
阅读全文
摘要:C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast使用标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast、和const_cast。1 static_cast用法:static_cast < type-id > ( expression )该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法:①用于类层次结构中基类和子类之间指针或引用的转换。 进行上行转换(把子类的指针或引用转换成基类表示)是
阅读全文
摘要:string strPath(CONFIG); strPath += "\\LOG.ini"; cout<<strPath<<endl; int res = WritePrivateProfileStringA("section", "key1", "123", strPath.c_str());//0表示失败,非0表示成功 cout<<res<<endl; int num = GetPrivateProfileIntA("section", &q
阅读全文
摘要:对于非数组类型为可选项,对于数组类型则不含此项,应换为当作下标上界的表达式。 格式举例: (1) new int; (2) new int(5); (3) new char[10]; (4) new int[n]; (5) new double[m+1][N+1]; (6) new char*(&x); 执行第1条运算时将分配到具有4个字节的整数存储空间,并返回该存储空间的地址,即指向该存储空间的指针,该指针的类型为int*。 执行第2条运算时同样分配到具有4个字节的整数存储空间,返回该存储空间的地址,并且对该存储空间进行初始化,使之存储一个整数5。 执行第3条运算时,...
阅读全文
摘要:我的理解:对于一个数组,delete和delete[]都可以释放内存空间,但是只有delete[]才会调用每一个数组元素的析构函数,而delete只能调用第一个数组元素的析构函数。对于基本数据类型,没有析构函数,所以使用delete和delete[]没有区别。C++告诉我们在回收用new分配的单个对象的内存空间的时候用delete,回收用new[]分配的一组对象的内存空间的时候用delete[]。关于new[]和delete[],其中又分为两种情况:(1)为基本数据类型分配和回收空间;(2)为自定义类型分配和回收空间。对于(1), delete[]和delete是等同的。但是对于(2),情况就
阅读全文
摘要:malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free。因此C++语言需要一个能完成动态内存分配和初始化工作的运算符new,以及一个能完成清理与释放内存工作的运算符delete。注意new/delete不是库函数。我们先看一看malloc/fr
阅读全文
浙公网安备 33010602011771号