c++ primer
文章平均质量分 56
sinat_37339643
这个作者很懒,什么都没留下…
展开
-
c++ primer 学习笔记2
字符串和字符串字面值:'a' 字符字面值"hello world "字符串字面值字符串处添加一个空字符'\0'转义序列:反斜杠\后面跟着8进制超过3个,只有前面3个与\构成转义序列例子:"\1234"表示两个字符;即123对应的字符以及4制定字面值的类型从它是否带符号以及占用多少空间,后缀有u代表字符串属于无符号类型,八进制,十六进制,十进制从unsigned int,unsigned原创 2017-11-30 23:34:17 · 114 阅读 · 0 评论 -
c++ primer 函数
int fact(int val){ int ret=1; while(val>1) ret*=val--; return ret;}调用函数 int main() { int j=fact(5); cout<<”5! is”< int val=5; int ret=1; while(val&...原创 2018-02-18 23:16:38 · 136 阅读 · 0 评论 -
c++ primer 读书笔记十三
重载运算符 c++语言定义了运算符作用于内置类型和复合类型的运算对象所执行的操作,当操作运算符作用于类类型的运算对象时,用户可以自行定义其含义。因为这种自定义的过程事实上市为了已存在的运算符赋予了另外一层含义,所以称之为重载运算符 IO库>>和<<运算符以及string对象,vector对象和迭代器使用的运算符都是重载的运算符. 左值和右值 c++只要左值和右值 ...原创 2018-02-03 23:02:09 · 132 阅读 · 0 评论 -
c++ primer 读书笔记十二
指针运算 给一个指针加上减去某个整数值,结果任然是指针,新元素指向的元素与原来的指针相比前进(后退了)该整数值个位置:constexpr size_t sz=5; int arr[sz]={1,2,3,4,5}; int *ip=arr; int *ip2=ip+4//ip2指向arr的尾元素arr[4]给指针加上一个整数,得到的新指针任然需指向同一数组的其他元素,或者指向同原创 2018-02-02 17:52:10 · 97 阅读 · 0 评论 -
c++ primer 读书笔记十一
3.4迭代器 和指针不一样的是,获取迭代器不是使用取地址符,有迭代器的类型同时返回拥有返回迭代器的成员,比如这些类型都拥有名为begin和end的成员,其中begin成员负责指向第一个元素的迭代器auto b=v.begin(),e=v.end();//b和e的类型相同end成员则负责返回指向容器(或string对象)“尾元素的下一个位置”的迭代器,也就是说,该迭代器指示的是容器的一个本原创 2018-01-26 15:24:10 · 127 阅读 · 0 评论 -
c++ primer读书笔记十一
3.3.2 向vector对象中添加元素 对vector来说,直接初始化的方式适用于三种情况:初始值已知且数量较少,初始值是另外一个对象vector的副本,所有元素的初始值一样. 想创建一个vector包含100个元素,一一罗列出来不太合适,先创建一个空的vector,然后运行时再利用vector的成员函数push_back向其中添加元素,push_back负责把一个值当成vector对象的原创 2018-01-25 23:05:57 · 145 阅读 · 0 评论 -
c++ primer 读书笔记十
使用范围for语句改变字符串中的字符 如果想要改变string对象中字符的值,必须把循环变量定义成引用类型p45,所谓引用只是给对象的一个别名,因此当使用引用作为循环控制变量时候,这个变量实际上被依次绑定到序列的每个元素上,使用这个引用,我们就能改变它绑定的字符、 把字符串改写成大写字母的形式。为了做到这一点可以使用标准库函数toupper,该函数接受一个字符:string s("he原创 2018-01-25 21:38:40 · 184 阅读 · 0 评论 -
c++ primer 读书笔记六
2.4const 限定符const int bufSize=512;//输入缓冲区的大小把bufsize定义成了一个常量,任何试图为bufSize赋值的行为都将引发错误: const对象一旦创建后其值就不能再改变,所以const对象必须初始化初始值可以是任意复杂的表达式const int i=get_size();const int j=42;const int k;//原创 2018-01-17 21:40:40 · 102 阅读 · 0 评论 -
c++ primer读书笔记五
2.3.3理解复合类型的声明 指向指针的指针 指针是内存中的对象,像其他对象一样也有自己的地址,因此允许把指针的地址再存放到另一个指针当中通过的个数可以区别指针的级别,表示指向指针的指针,表示指向指针的指针的指针int ival=1024;int *pi=&ival;int **ppi=&pi;见p58指向指针的引用 引用本身不是一个对象,因此不能定义指向引用的指针。但原创 2018-01-16 11:18:18 · 83 阅读 · 0 评论 -
c++ primer 读书笔记四
2.3.2指针 指针本身就是一个对象,允许对指针赋值和拷贝,而且在指针的生命周期内它可以先后指向几个不同的对象。 指针无须在定义是赋值。和其他内置类型一样,在块作用域内定义的指针如果没有被初始化,也将拥有一个不确定的值。 如果在一条语句中定义了几个指针变量,每个定义了几个指针变量,每个变量前面都必须有符号*: int *pt1,*ip2; double dp,*dp2;获取对象的地址原创 2018-01-15 22:51:30 · 144 阅读 · 0 评论 -
c++ primer 读书笔记七
3.2.1定义和初始化string 初始化string对象常用的一些方式string s1;//s1是个空字符串string s2=s1;//s2是s1的副本string s3=“hiya”string s4(10,'c')//s4的内容是cccccccccc初始化string对象的方式string s1string s2(s1)//s2是s1的副本string原创 2018-01-19 17:02:56 · 153 阅读 · 0 评论 -
c++ primer 读书笔记九
从p83开始写,这一章前面的丢了看书就好 使用范围for语句和ispunc函数来统计string对象中标点符号的个数:string s(“hello World”);decltype(s.size())punct_cnt=0;for(auto c:s) if(ispunct(c)) ++punct_cnt;cout<<punct_cnt"punctuation原创 2018-01-21 12:01:49 · 119 阅读 · 0 评论 -
c++ primer 读书笔记八
2.4.4 constexpr和常量表达式 常量表达式是指值不会改变并且在编译过程就能得到计算结果的表达式,字面值属于常量表达式,用常量表达式初始化的const对象也是常量表达式 一个对象是不是常量表达式是由它的数据类型和初始值决定的const int max_files=20;//max_files是常量表达式const int limit=max_files+1;//limit是原创 2018-01-21 10:43:23 · 176 阅读 · 0 评论 -
c++ primer 读书笔记三
2.2.2声明和定义的关系声明使得名字为程序所知,一个文件如果想使用别处的定义的名字则必须包含对名字的声明,而定义则负责创建与名字相联的实体extern int i;//声明而非定义int i//声明并且定义j初始化的声明等于定义变量能被定义一次,但可以被多次声明2.2.4名字的作用域 嵌套得的作用域 作用域能彼此包含,被包含(或者说被嵌套)的作用域被称为内层作用域 作用域一旦声明了某原创 2017-12-03 21:37:19 · 128 阅读 · 0 评论 -
c++ primer 学习笔记1
2.1 : short 短整型 16 位 long 长整形32位 int整形32位 long long 长整形64位 无符号的数只能表示大于0的数,有符号数可以是正数也可以是负数和0 float 6位有效数字 double 10 位有效数字2.3有符号数变成无符号数字: 负数转化成无符号数实际就是把这个负数与模相加后得到原创 2017-11-30 23:20:39 · 146 阅读 · 0 评论