C++primer第4版第三章标准库类型
2016-12-01 16:32
246 查看
Talk is cheap, show me the code.
包含文件加不加.h后缀的区别:C语言中的头文件都是包含.h的,比如stdio.h,iostream.h等,C++为了兼容C语言,采用去掉.h后缀的形式,但其实用法是一样的,比如stdio,iostream等。但有一个区别是,C语言中也有string.h,但是C++中的string库却和C语言中的不一样,string是C++的一个类。
string作为一个类,它的初始化是通过调用构造函数完成的。初始化有几种形式:
string.size()的返回值类型是string::size_type 它与unsigned类型一致,保存数的范围是int型的两倍。对于没超过int表示范围的值用int或者string::size_type变量保存都行,但是一旦超出int表示范围就必须使用string::size_type保存。
string是一个类,需要注意与字符串字面量“hello”进行区分,内存中存储的方式不同。
C++提供了处理单个字符的标准库,#include ,这是对C语言标准库ctype.h的兼容库,里面提供了对单个字符处理方法,常用如下:
vector不能直接cout,即cout << vect编译报错;另外因为vector的大小没有指定不能直接用vect[0]=1来添加元素,在已经存在的情况下修改倒是可以的。
在使用while(cin>>str){}来输入不确定个数的字符串时,可以利用ctrl+d来输入eof字符以结束输入流。要查看linux快捷键的功能设置,直接输入命令stty -a即可。
vector不是一种数据类型,而只是一种类模板,而vector是一种数据类型。
iterator对于每种容器都有具体的类型实现,比如vector::iterator。 iter=vect.begin()如果容器不为空,则指向容器中第一个元素,如果容器为空,则和end()值指向相同,不指向容器中任何元素;iter=vect.end()不管容器是否为空,都指向容器中最后一个元素的下一个元素,即不指向容器中任何一个元素,起到哨兵的作用。
const_iterator是自身值可以改变的迭代器,但是不能改变迭代器指向的值,即是只能读不能写的iterator。
包含文件加不加.h后缀的区别:C语言中的头文件都是包含.h的,比如stdio.h,iostream.h等,C++为了兼容C语言,采用去掉.h后缀的形式,但其实用法是一样的,比如stdio,iostream等。但有一个区别是,C语言中也有string.h,但是C++中的string库却和C语言中的不一样,string是C++的一个类。
string作为一个类,它的初始化是通过调用构造函数完成的。初始化有几种形式:
string s1; //s1 == "" string s2("he"); //s2 == "he" string s3(s1); //s3 == "he" string* s4 = new string("hello"); //*s4 == "hello" string s5(2, 'c'); //s5 == "cc"
string.size()的返回值类型是string::size_type 它与unsigned类型一致,保存数的范围是int型的两倍。对于没超过int表示范围的值用int或者string::size_type变量保存都行,但是一旦超出int表示范围就必须使用string::size_type保存。
string是一个类,需要注意与字符串字面量“hello”进行区分,内存中存储的方式不同。
C++提供了处理单个字符的标准库,#include ,这是对C语言标准库ctype.h的兼容库,里面提供了对单个字符处理方法,常用如下:
ispunct(char c) //判断是否标点符号 isdigit(c) //判断是否数字 isupper(c) //判断是否大写字母 islower(c) //判断是否小写字母 isalpha(c) //判断是否字母 isalnum(c) //判断是否字母或者数字 isprint(c) //判断是否是可打印字符
vector不能直接cout,即cout << vect编译报错;另外因为vector的大小没有指定不能直接用vect[0]=1来添加元素,在已经存在的情况下修改倒是可以的。
在使用while(cin>>str){}来输入不确定个数的字符串时,可以利用ctrl+d来输入eof字符以结束输入流。要查看linux快捷键的功能设置,直接输入命令stty -a即可。
vector不是一种数据类型,而只是一种类模板,而vector是一种数据类型。
iterator对于每种容器都有具体的类型实现,比如vector::iterator。 iter=vect.begin()如果容器不为空,则指向容器中第一个元素,如果容器为空,则和end()值指向相同,不指向容器中任何元素;iter=vect.end()不管容器是否为空,都指向容器中最后一个元素的下一个元素,即不指向容器中任何一个元素,起到哨兵的作用。
const_iterator是自身值可以改变的迭代器,但是不能改变迭代器指向的值,即是只能读不能写的iterator。
相关文章推荐
- C++primer学习笔记-第三章标准库类型
- 第三章 标准库类型(part 1) 标准库 string 类型
- 第三章 标准库string、vector、bitset类型 —— 第三节 bitset类
- 《C++primer》标准库类型 数组和指针
- linux & C++Primer 学习笔记--标准库vector类型
- 第一部分 基本语言 第三章 标准库类型(3.2标准库string类型)
- C++Primer3.5标准库类型bitset---字节存储排序:大端和小端的判别及转换(转载)
- 【第三章】c++里面的标准库类型
- 第一部分 基本语言 第三章 标准库类型(3.3标准库vector类型)
- C++primer 3.5标准库bitset类型(5.3 位操作符)
- 第三章 标准库string、vector、bitset类型 —— 第二节 vector类及其迭代器
- 第三章 标准库string、vector、bitset类型 —— 第一节 标准库string类
- c++primer学习笔记-----3.3标准库类型vector
- C++Primer读书笔记----第三章标准库类型
- C++Primer 学习笔记 第三章(标准库类型)
- 第三章标准库(迭代器,bitset类型)
- C++primer 3.3 标准库类型 vector
- 第三章 标准库类型(part 2) 标准库 vector 类型
- C++ 第三章标准库类型