`

C++Primer 笔记第三章

阅读更多

除了基本数据类型之外,C++还定义了一个内容丰富的抽象数据类型标准库。其中最重要的标准库类型是string和vector。他们分别定义了大小可变的字符串和集合。

string和vector 往往将迭代器用作配套类型(companion type),用于访问string中的字符串或者vector中的元素。

C++还定义了许多更高级的抽象数据类型。

3.1命名空间的using 声明

3.2标准库 string类型

3.2.1 string对象的ing一盒初始化

几种初始化string对象的方式

string s1; //默认构造函数,s1为空串
string s2(s1);
string s3("value");
string s4(n,'c');

 

3.2.2string对象的读写
string s1;
cin>>s;
读取并忽略开头所有的空白字符(如 空格,换行符,制表符);
读取字符直到再次遇到空白字符,读取终止。
如果输入的是“Hello world” ,则是s1中包含的是“hello” 而不包含空格。
读入位置数目的string对象
int main()
{
string word;
while(cin>>word)
cout<<word<<endl;
return 0;
 
}
 2.用getline可以读取整行文本
getline 函数从输入流的下一行读取,并保存读取的内容到string中,但不包括换行符。
和输入操作符不一样的是,getline并不忽略开头的换行符。只要getline遇到换行符,即便它是输入的第一个换行符,getline也将停止读入并返回。如果第一个字符就是换行符,则string参数被置为空string;
 3.2.3 string的对象操作
1.string的size 和empty操作
string st("The expense of spirit\n");
cout<<"the size of "<<st<<"is"<<st.size()
<<"charactors,including the newline"<<endl;
 
2.string::size_type 类型
从逻辑上来看,size()成员函数似乎应该返回整型数值,但事实上,size操作返回的是string::size_type类型的值。(这里,我在以前应用的时候从来没有注意过,这个一定要好好记住。)
注意:任何存储string的size操作结果的变量必须为string::size_type类型。特别重要的是,不要把size的返回值赋给一个int变量
 3.string 关系操作符
4.string对象的赋值
5.两个string对象相加
6.和字符串字面值的连接
7.从string 对象获取字符
可以用下标操作符分别取出string对象的每个字符,分行输出:
string st("some string");
for( string::size_type ix=0;ix!=str,size();++ix)
cout<<str[ix]<<endl;
 8.下标操作符可以用作左值
str[ix]="*";
9.计算下标值
3.2.4 string操作中的字符处理
 

 

分享到:
评论

相关推荐

    C++Primer读书笔记:C++概述.pdf

    C++Primer中文第三版(C++从入门到精通)第一章的读书笔记,主要是C++程序、预处理器指示符、iostream库等的基础知识点读书笔记。

    《C++ Primer Plus第6版中文版》学习笔记(第七章)

    红字内容是有疑问或者没把握的。 绿字部分是比较重要,或者经过确认的

    《C++ primer plus》读书笔记(三)

    本文是C++读书笔记系列的第三篇,是读完《C++ primer plus》一书第九、十两章记录下来的笔记,学习C++的同学可以看看参考下。

    《C++ primer plus》读书笔记(一)

    第一章 1、预处理器——#include将iostream文件内容添加到程序中。老式C头文件保留了扩展名.h,而C++头文件没有扩展名。 (有些C头文件被转换为C++头文件,去掉扩展名,并在前面加c,如cmath) 2、名称空间——相当...

    C++ 后台工程师面试宝典

    C++primer5笔记代码资料 STL 源码剖析 再硬核|5 千字长文+ 30 张图解 | 陪你手撕 STL 空间配置器源码 硬核|万字长文炸裂!手撕 STL 迭代器源码与 traits 编程技法 超硬核 | 2 万字+20 图带你手撕 STL 序列式容器源码...

    C++经典必看书籍

    很好的C++书籍参考资料包括:C++Primer中文第三版.pdf;Effective C++_CN.chm;Effective STL_CHS.pdf;EFFective STL中文版(附中文笔记).chm;More+Effective+C++.doc;Professional C++.pdf;设计模式可复用面向...

    《C++ primer plus》读书笔记(二)

    第五章 1、for循环——for(initialization; test-expression; update-expression) body // test-expression 会被转换为bool,0为false,非零为true 2、表达式——表达式是值或值与运算符的组合。赋值表达式的值为其...

    CppPrimer:C++ 入门 5 个回答

    ##C++ 入门 5 个回答 笔记 编译时使用-std=c++11 (可选: -pedantic -Wall )标志,g++ -std=c++11 -o out template.cc。 本书所有代码源均可从...第三部分:课堂作者工具 第四部分:高级主题 第 19 章专用工具和技术

    Cpp-Primer:C ++ Primer解决方案第五答案

    第三部分:面向班级作者的工具 Chapter 13.复制控制 第14章重载的操作和转换 第15章面向对象的编程 第16章模板和泛型编程 第四部分:高级主题 第十七章专业图书馆设施 Chapter 18.大型程序的工具 第19章专用工具和...

    my-C-plus-plus:c++的学习笔记

    《Effective C++》最新是第三版,告诉你什么改写,什么不该写 《The C++ Standard Library》这本书已经有中文版 《STL源码剖析》市面上少有同类书籍 重要网页 en.cppreference.com chromium code 普遍使用的 C++11 ...

    CppPrimer:C ++ Primer第五次练习的解决方案

    C ++ Primer解决方案第五答案 笔记 使用GCC 4.9+ , Clang 3.4+ MSVC 14+ , MSVC 14+。 使用-std=c++11 (推荐: -pedantic -Wall )...第三部分:面向班级作者的工具 第四部分:高级主题 第19章专用工具和技术 会费

    Hello,world

    pdf(3) chm(3) java(2) android(2) 设计(1) jsp(1) jsp语法(1) 第二版(1) 中文(1) cprimer(1) c++(1) 《javascript源码(1) hello(1) sdk(1) ui设计技巧(1) android应用开发入门与实战(1) 和开发模式详解(1) andriod...

    若干源程序资料12.rar

    2012-06-11 21:03 340,134 C++ Primer Plus.第五版.习题解答和例题代码.rar 2012-06-11 21:03 956,190 C++ Primer中文版(第4版)中的源代码.rar 2012-06-11 21:12 1,386,523 C++-打飞机的游戏.rar 2012-06-11 21:06 ...

    ASP.NET常见问题集锦.zip

    ASP.NET程序中常用的三十三种代码.txt ASP.NET页面间数据传递小结.doc ASPNETXML深入编程.pdf C Primer Plus 5th.chm C#中结构与类的区别.doc C#复习.txt C#实现Web文件上传的两种方法.doc C#排序算法大全....

Global site tag (gtag.js) - Google Analytics