《C++Primer》第03章学习笔记

《C++Primer》第03章学习笔记

ID:37907068

大小:20.30 KB

页数:3页

时间:2019-06-02

《C++Primer》第03章学习笔记_第1页
《C++Primer》第03章学习笔记_第2页
《C++Primer》第03章学习笔记_第3页
资源描述:

《《C++Primer》第03章学习笔记》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、《C++Primer》第03章学习笔记第03章:标准库类型C++还定义了一个内容丰富的抽象数据类型标准库,其中最重要的标准库类型是string和vector,它们分别定义了大小可变的字符串和集合。另一种标准库类型bitset提供了一种抽象方法来操作位集合。第一节:命名空间using声明@学习摘录024:——一旦使用了using声明,我们就可以直接引用名字,而不需要再引用该名字的命名空间:——//usingdeclarationstatesourintenttousethesenamesfromthenamespacestd.——usingstd::cin

2、;——usingstd::string;@学习摘录025:——如果在头文件中放置using声明,就相当于在包含该文件的每个程序中都放置了同一个using声明,不论该程序是否需要using声明。摘录有想025:——我想这相当于全局变量跟局部变量的作用吧。@学习摘录026:——通常头文件中应该只定义确实必要的东西。请养成这个习惯。摘录有想026:——书上建议少用usingnamespacestd这样的风格,以后写程序就尽量用using声明吧,少用using编译指令。第二节:标准库string类型@学习摘录027:string操作——s.empty()//检查

3、字符是否为空,bool类型——s.size();//返回s中字符的个数——s[n];// 返回s中位置为n的字符,位置从0开始计数摘录有想027:——以前还不知道原来有empty()这一操作,初见empty还以为要清空这个对象的数据呢,其实不然,是检查字符串是否为空。 If(s.empty())//ok,empty@学习摘录028:——size操作返回的是string::size_type类型的值。String类类型和许多其他库类型都定义了一些配套类型(companiontype)。通过这些配套类型,库类型的使用就能与机器无关(machine-indep

4、endent)。Size_type就是这些配套类型中的一种。它定义为unsigned型(unsignedint或unsignedlong)具有相同的含义,而且可以保证足够大能够存储任意string对象的长度。摘录有想028:——写程序时不要把size的返回值赋给一个int变量了。@学习摘录029:——如在有16位int型的机器上,int类型变量最大只能表示32767个字符的string对象,而能容纳一个文件内容的string对象轻易就会超过这个数字。因此,为了避免溢出,保存一个string对象size的最安全的方法就是使用标准库类型string::siz

5、e_type@学习摘录030:——string对象比较操作是区分大小写的,即同一个字符的大小写形式被认为是两个不同的字符。在多数计算机上,大写的字母位于小写字母之前;任何一个大写字母都小于任意的小写字母。摘录有想030:——在比较时需注意大小写了,想起以前cctype有一个用于转换字符的函数,把大写转为小写之类的功能可以很容易实现。@学习摘录031:——string类型通过下标操作符([])来访问string对象中的单个字符。下标操作符需要一个size_type类型的值,来标明要访问字符的位置。这个下标中的值通常被称为“下标”或“索引(index)”。@

6、学习摘录032:——string对象的下标从0开始,而s[s.size()–1]则表示s的最后一个字符。第三节:标准库vector类型@学习摘录033:——虽然可以对给定元素个数的vector对象预先分配内存,但更有效的方法是先初始化一个空vector对象,然后再动态地增加元素。@学习摘录034:——C++程序员习惯于优先选用!=而不是<来编写循环判断条件。@学习摘录035:——我们倾向于在每次循环中测试size的当前值,而不是进入循环前,存储size值的副本。调用size成员而不保存它返回的值,这反映了一种良好的编程习惯。摘录有想035:——以后在使用

7、for时,可以注意一下这个问题了。第四节:迭代器简介。@学习摘录036:——迭代器是一种检查容器内元素并遍历元素的数据类型。若一种类型支持一组确定的操作(这些操作可用来遍历容器内的元素并访问这些元素的值),我们就称这种类型为迭代器。@学习摘录037:——vector::iteratoriter=ivec.begin();——由end操作返回的迭代器指向vector的“末端元素的下一个”,通常称为超出未端迭代器(off-the-enditerator),表明它指向了一个不存在的元素。如果vector为空,begin返回迭代器与end返回的迭代器相

8、同。@学习摘录038:——由end操作返回的迭代器并不指向vector中任何实际

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。