
C++Primer(yang)
SURE_bd
这个作者很懒,什么都没留下…
展开
-
string
#include #include using namespace std;int main(void){ string str("abcdefg"); str[3]='\0'; cout char ch[]="abcdefg"; ch[3]='\0'; cout return 0;}运行结果原创 2012-03-14 18:42:07 · 900 阅读 · 1 评论 -
头文件设计注意事项
头文件用于声明而不是用于定义。对于非const变量不能在头文件中定义,因为非const变量默认为extern,如果头文件被多次包含(直接或间接),那么变量就会被重复定义,因此头文件中只能声明变量。extern int a=10;//不能用于头文件中extern int b;//可以int c;//不可以,是定义这需要清楚的什么是定义什么是声明。对于const变量,默认情况下原创 2012-03-11 14:01:35 · 1018 阅读 · 1 评论 -
CodeBlocks+MinGW+wcout+中文 小记
开始好好学习C++,看到第一部分第二章有关于wchar_t宽字节,有关于wcout,编了下试了试,#include int main(){ std::wcout.imbue(std::locale("chs")); std::wcout return 0;}声明下,这个时候用的编辑器是C-Free,编译器是MinGW,可是出现两个错误,具体忘了什原创 2012-03-10 13:15:16 · 1348 阅读 · 1 评论 -
reference初始化
引用变量和const变量一样,在声明是要初始化,即要定义,不能仅声明。不管是全局还是局部变量都要初始化。不同于const变量,即使是具有默认构造函数的类的引用变量也需要初始化。const引用可以指向非const变量,const变量,或者右值(常量表达式)。例如:#include using namespace std;int main(void){ int a=1原创 2012-03-11 13:52:06 · 1057 阅读 · 1 评论 -
vector+iterator
循环可以容易的增加新元素,如果确实增加了元素的话,那么测试以保存的size值作为循环的结束条件就会有问题,因为没有将新加入的元素计算在内,像size这样的小库函数几乎都定义为内联函数,所以每次循环过程中调用它的运行时代价是比较小的。verctoriter1-iter2所得到的类型是difference_type类型,是signed。任何改变vector长度的操作都会使已存在的迭代器原创 2012-03-14 19:48:49 · 869 阅读 · 1 评论 -
bitset
bitset如果bitset对象包含的二进制位数超过unsigned long的常数,将会产生编译错误。#include #include using namespace std;int main(void){ bitset temp; return 0;}103439432并没有大于unsigned long的最大值,上述程原创 2012-03-14 20:53:59 · 5545 阅读 · 1 评论 -
指针
赋给指针0值时,这个0值必须是在编译时可获得的0值,例如数值0,或const常量0值,就像定义数组长度时,需要用enum常量或const常量相同。预处理变量NULL定义在cstdlib头文件中,其值为0。在代码中使用该值,则编译时会自动被数值0替换。对为NULL值的指针变量解引用,则会出现运行错误。#include #include using namespace st原创 2012-03-24 10:58:34 · 1592 阅读 · 0 评论 -
数组
数组的初始化:如果没有显示提供元素初值,则数组则会和普通变量一样初始化。#include #include using namespace std;int main(void){ const size_t size=5; int a[size]={}; for(size_t i=0;i { cout }原创 2012-03-24 10:32:50 · 7634 阅读 · 1 评论 -
const初始化
const变量为左值,在初始化时,变量出现在等号左边。C++全局变量的初始化,对于内置类型,如果是全局变量则初始化为0,否则未知。#include using namespace std;int a;int main(void){ int b; return 0;}则有a=0;b未知const变量必须要初始化,但是如果原创 2012-03-10 19:21:04 · 1245 阅读 · 1 评论 -
C风格字符串
字符串常量是存储在常量存储区(文字常量区),因此不能改变其值。#include using namespace std;int main(void){ char *p="C++"; *(p+1)='d'; cout char ch[]="c++"; ch[0]='d'; cout return 0;}原创 2012-03-24 12:12:33 · 707 阅读 · 0 评论 -
动态数组
动态数组的分配是在自由存储区,即堆中进行的。动态分配的数组将一直存在,知道程序显示的释放它为止。malloc和free,new和delete。注意在delete之后,记得把指针设为空。int *pia=new int[10];delete [] pia;pia=NULL;delete pia时,不要忘记[],因为pia指向的是一个数组。一定要释放!否则会造成memory leak。原创 2012-03-24 14:09:19 · 1839 阅读 · 0 评论 -
连续输入两个vector
#include #include #include using namespace std;int main(void){ vector vect1,vect2; int temp; bool equal2=true; while(cin>>temp) { vect1.push_back(temp);原创 2012-03-15 10:15:37 · 2169 阅读 · 2 评论