c++ 学习 随笔二
来源:互联网 发布:python 接口 上传图片 编辑:程序博客网 时间:2024/06/11 20:47
1、在程序当中对string类型进行输入时,总是忽略前面的空字符,比如空格,回车,换行符等等,知道接收第一个字符开始,一直到下一个空字符,输入结束。然后getline()函数却不同,主要用于一行的输入,所以如果第一个字符就是换行符,那么getline()就会执行命令,跳到下一行,否则一直接收本行所以字符串,知道遇到最后的换行符。getline()在返回时丢弃换行符,所以字符串中没有换行符。
2、上一篇博客中写过,字符串的字面值比如“abcd”与string类型不是一样的,所以我们在使用+时对字符串,至少要保证+的左右两边有一边是string类型的。比如
string a("abcd");string b;b = a + "efgh";string c;c = "ab"+"cd";上述表达中,b是合理的,c是不合理的。
3、同样在上一篇中提到过,有些类型在计算机中的表达格式是不一样的例如int型,同样,string也一样,那么为了解决这个问题,在标准库中定义了与相应类型配套的一些方法的值的类型。比如,在string类型中size()函数用于返回字符串的长度,此时的返回值就是size_type的,与int类型完全不同,因为size_type一定是正数,而且可以非常大,大到int
接收不了的数值,所以此时如果把size_type赋值给int类型,会产生巨大的错误。同样string的下标操作类型也是size_type;同样的还有vector也是用size_type作为配套类型;在数组当中,用size_t作为配套的类型。这一定多多理解就明白了,其实不难。size_type是unsigned的,size_t是signed。
4、说起vector就必须要提到迭代器,其实简单的来看,可以将迭代器和指针连起来记忆,因为迭代器就是由此而来,这回明白了吧!!!在同一容器的迭代器可以相减
iter1 - iter2此时式子返回的是difference_type,是signed的,因为相减的结果可能为负,并且iter1,iter2必须为同一容器,或者指向容器最后一个元素的下一个位置。两个指针相减返回的类型是ptrdiff_t类型的。
5、const vector<int>::iterator p 和vector<int>::const_iterator q;这两个迭代器有什么不同,我刚开始学的时候,还郁闷了一阵,其实理解的const和const_iterator之后,非常容易理解。这样说,const指的是p中的内容可以修改,但是迭代器p本身不能修改,就是赋值,加1等操作都不行,因为const修饰迭代器,这一点从右像左仔细看看。而const_iterator是指元素不能修改,但是迭代器可以修改。
6、void*指针,看到过几次,但是不常用,标识什么类型的指针都可以,一般用于接收,传递等。没有什么具体的操作。
7、再来说一说数组吧,与vector不同,数组不允许直接赋值和复制。
8、最后所以说c风格的字符串吧,我对它也是无语了,最好还是用c++的string风格吧。
char a[] = {'a','b','c'};char a[] = {'a','b','c',NULL};怎么样看明白了吗,对的,一定要在最后加上空字符结尾,第一个的长度不定,第二的长度一定为3;string类型的字符串也是默认为以空字符结尾。
- C语言编程预备知识(C语言学习随笔二)
- c++ 学习 随笔二
- C学习随笔
- C语言学习随笔
- C语言学习随笔
- 计算机考试C随笔二
- HGE学习随笔之二
- dx10 学习随笔(二)
- [Java]学习笔记,随笔【二】
- JavaScript 学习随笔(二)
- C++PrimerPlus第一章学习随笔
- Android手机壁纸(Android学习随笔二)
- IO(J2SE学习随笔二)
- Java虚拟机学习随笔(二)
- js与jquery 学习随笔(二)
- opengl GLSL基本语法 学习 随笔二
- android 学习随笔二(读写文件)
- android 学习随笔二十二(小结)
- C#ModalPopupExtender相关
- 第13周项目1(5)
- WatchKit编程指南:Glance--Glance开发基础
- XSS编码剖析
- 输入一列数组,输出它的逆序数组
- c++ 学习 随笔二
- SSH下做Junit测试
- 图床
- 第十三周项目1---2
- 第十一周项目六 回文素数 (2)
- 第13周 项目1-数组大折腾(2)【令元素加倍】
- 第十三周 项目一--数组大折腾(2)
- 第13周项目1-数组大折腾(3)
- 在centos中安装jenkins master为service