C++Prime第三章标准库类型
时间:2010-07-28 来源:静止的流水
抽象数据类型标准库:string和vector和bitset,标准库类型都有配套的迭代器类型用于访问内部元素
命名空间using namespace std;在文件中就可以不用完全限定名了
但是在头文件中必须总是使用完全限定的标准库名字,理由是头文件内容会被预处理器复制到程序中
String构造函数有6个,相关函数共有32个
cin>>s;cin读取字符串的时候会忽略开头所有的空白符,读取字符串,直到遇到下一个空白符,这些操作符返回做操作数作为运算结果
getline读取一行文本
size和empty操作
string::size_type 定义了一些配套类型,库类型的使用就能与机器无关 是unsigned类型的
string比较的时候按照字典序比较第一个不相同的字符,如果s1是s2的开始部分,则s1<s2
s1=s2:s1清空,s1分配足够存储s2的内存,s2复制给s1内存
两个string对象相加,必须保证+号左右至少有一个string变量,不能左右都是字符串字面值
类似“hello”+“world”是错误的,但是可以这样写“hello”“world”
String提供下标操作,下标操作返回的是左值,可以用来赋值
Isalnum isdigit isxdigit isspace isupper islower ispunct isprint iscntrl toupper tolower
Vector是一个类模板,使用模板可以编写一个类定义或一个函数定义用于多个不同数据类型
Vector<int> v1(5);值初始化,内置类型值初始化为0,类类型默认构造函数初始化
Size返回的也是vector<int>::size_type
Vector可以动态增加元素push_back(),删除元素用pop_back();
Vector也提供下标操作,但是只能用于已存在的元素,返回的也是左值
Vector迭代器,解引用返回的也是左值
如果两个迭代器指向同一个元素,相等
如果vector为空,begin和end相等
还有一个const_iterator迭代器,只能用于读取vector元素
迭代器可以有算术操作
Bitset类型,可以提供比位操作更直接的位运算
Bitset<16>v(0xffff);
相关操作有set flip 等等