string类型
支持长度可变的字符串
因为历史原因以及为了与C语言兼容,字符串字面值与标准库string类型不是同一种类型。这一点很容易引起混乱。
s.empty () 如果s为空串,则返回ture
s.size()
s[n] 返回s中位置为n的字符
size()操作返回的是string::size_type类型的值。很多库类型定义了一些配套类型,通过这些配套类型,库类型的使用就能与机器无关。string::size_type定义与unsigned具有相同的含义,而且可以保证足够大能够存储任意string对象的长度。所以不要把size的返回值赋给一个int变量。
当进行stirng和字符串字面值混合连接操作时,+操作符的左右操作数必须至少有一个是string类型的。
虽然任何整形数值都可以作为索引,但索引的实际数据类型却是unsigned类型string::size_type。
for (string::size_type ix = 0; ix != str.size(); ++ix)
{
cout << str[ix] <<endl;
str[ix] ='*';
}
cctype头文件定义的函数,适用于string对象的字符(或其他恩和char值)
isalnum(c) 是字母或数字,则为true
isalpha(c) 是字母
isdigit(c) 是数字
tolower(c) 如果c是大写字母,则返回其小写字母形式,否则返回c
toupper(c)
...
...
vector类型
vector称为容器,是一个类模板。
vector<int> ivec1
vector<int> ivec2(ivect1) //copy elements of ivec1 into ivec2;
vector对象(以及其他标准库容器对象)的重要属性就在于可以在运行时搞笑地添加元素。因为vector增长的效率高,在元素值已知的情况下,最好是动态地添加元素。
vector操作
v.empty() 如果v为空,则返回true
v.size() v中元素个数 返回相应vector类定义的size_type的值 vector<int>::size_type
v.push_back(t) 末尾增加一个值为 t 的元素
v[n] 返回v中位置为n的元素
for (vector<int>::size_type ix = 0; ix != 10; ++ix)
ivec.push_back(ix)
必须是已存在的元素才能用下标操作符进行索引。通过下标操作进行赋值时,不会添加任何元素。