C++学习笔记三。3.

今天看了C++primer的第三章,真是精彩,但是确实讲的很细致,想要全部掌握还是有难度的。

一。1.首先在C++中要使用与string相关的必须在头文件中包括#include<string>,这一点和C还是有很大区别的。对于字符串变量的初始化,除了之前常见的,还有一种类似于利用构造函数初始化。比如string s(10,'c'),string("okcing"),这样子的初始化。也叫做直接初始化。2.要知道字符串有一个输入函数getline(),用法是getline(cin,s),也就是 将输入的字符串给字符串s,这有个好处使能够接收一段字符串,即使带着空格也可以,但是使用输入流对象cin就不行了,空格之后的输入就不算了。3.string有好多有用的函数,在msdn中自己学习吧。4.注意C++为了和C兼容,它里面的字符串字面值和string对象并不是同一个类型,而以往我所知道的字符串相加就是将字符串拼接起来,但是在C++里面规定两个string对象可以直接相加,两个字符串字面值不可以直接相加,+号两边至少有一个是string对象才可以。4处理字符串中的每个字符,使用范围for语句,而要想在范围for语句中改变字符串的值,那么遍历的应该是字符的引用而不是字符自身。而且string对象是可以使用下标运算符的,用法类似于数组。

二。标准库类型vector,这个算是一个新东西了,我对它的理解就是变长数组,并没有什么特殊或者高端的地方,就是注意掌握它的一些用法就可以了。1初始化有多种方法,其中默认初始化就比较好。2.向vector中添加元素使用push_back()函数,就是给vector最后面加元素,不可以使用下标的方法添加元素,因为在使用的时候不存在3.对于vector内部元素的访问可以使用下标形式,用法和数组类似,但是还是记住不能利用下标形式给数组赋值。4.vector有自己的很多函数,要多学学

三。迭代器,这也是个新内容,但其实也很简单,我认为迭代器就是用来给C++的容器使用的,类似于指向容器首元素的指针,迭代下去就可以遍历容器中的对象。1.迭代器细致一点说有迭代器和尾后迭代器,这个尾后迭代器是指向的是容器最后一个元素的下一位置,即一个没有对象的位置。定义的时候可以是auto b=v.begin(),这里b就是vector对象的迭代器。2.迭代器可以自增,就会指向下一个元素,也可以解引用,就能够得出其中的对象,也可以比较是否相等,就是看这两个迭代器是否指向容器的同一个位置。3迭代器可以进行运算,和指针十分类似。迭代器加上一个常数,就是迭代器知识的位置向后移动了若干位,减去一个常数道理是相同的。两个迭代器之间不可以进行相加的操作,但是可以进行相减的操作,得到的结果过是这两个迭代器相距的距离。迭代器尽量不要进行大小比较,最好进行相等或者不等的判断,因为不是所有容器的迭代器都定义了大小比较的操作,但是都定义了相等和不等的操作。

四。数组,这个之前就接触过,但是C++primer'讲的很细致,学习到了以前不知道的东西。1.首先要知道数组是不可以拷贝赋值的,有一些复杂的数组声明还是要知道的,比如

int *ptr[10];这是声明了一个数组,这个数组中存放的是指针。int (*p)[10]=arr,这个意思是这个指针p是指向arr这个数组,这是一个指针的指针。int (&a)[10]=arr,这个意思是a是数组的的引用,其实就类似于指针的引用。2.指针和数组的关系。数组的数组名就相当于指向数组首元素的指针。当一个指针指向数组的时候,指针就像是迭代器一样,自增的时候就会指向下一个元素。

第三章的东西很多,还没有看完,明天接着看,加油啊!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值