一、string
1、String:支持长度可变的字符串;vector:可用于保存一组指定类型的对象
2、string初始化
strings1;// 默认值为空串
strings2(s1);// 将s2初始化为s1的一个副本
strings3(“value”);// s3初始化为一个字符串的字面值副本
strings4(n, ‘c’);// 将s4初始化为字符c的n个副本
3、getline读取正行文本
int main()
{
string line;
// read line at time until end-of-file
while (getline(cin, line))
cout << line << endl;
return 0;
}
4、string操作
注:string::size_type类型值,是string::size()的返回值类型,该函数的返回值不能用int直接
string对象中字符的处理:
cctype头文件中定义
二、vector类型
1、vector是同一类型的对象的集合,每个对象都有一个对应的整数索引值
使用:
#include <vector>
using std::vector;
vector是一个类模板(class template),使用模板可以编写一个类定义或函数定义,而用于多个不同的数据类型。
声明从类模板产生的某种类型的对象,需要提供附加信息。在vector中,需要保存对象的类型,通过将类型放在类模板名称后面的尖括号中来制定类型
vector<int> ivec1; // ivec1 holds objects of type int
vector<int> ivec2(ivec1); // ok: copy elements of ivec1 into ivec2
vector<string> svec(ivec1); // error: svec holds strings, not ints
2、初始化:
vector<int> fvec(10); // 10 elements,each initialized 0
vector<string> svec(10); // 10 elements,each an empty string
3、操作
4、迭代器
另一种访问vector元素的方法,迭代器(interactor)
Vector<int>::interactoriter = ivec.begin();
begin、end操作:
解引用运算:
迭代类型可以使用解引用操作符(*操作符)来访问迭代器所指向的元算
vector::iteractor可以改变vector中的元素值。如果使用const_iteractor类型,只能用于读取容器内元素
三、标准库bitset类型
尖括号说明bitset含有多少位
bitset<n> b(s, pos, n),省略第3个参数,默认读到字符串结尾
1、初始化:
用unsigned值初始化bitset对象
bitset<16> bitvec1(0xffff)
bitset<32> bitvec2(0xffff)
bitset<128> bitvec3(0xffff)
用string对象初始化bitset对象
string strval("1100");
bitset<32> bitvec4(strval);
String对象和bitset对象之间是反向转化的:string对象的最右边字符用来初始化bitset对象的低位(下标为0的位)
2、bitset对象上的操作