C++ Primer 第三章 标准库类型

string 对象看成是一个word,这是这个word中可以是ASCII的所有字符。

3.2.2 String 对象的读写

1.读入未知数目的string对象

int main(){

    string word;

    while(cin>>word)//返回读入的数据流

        cout << word << endl;

    return 0;

}

2.用getline读取整行文本

int main(){

    string line;

    while(getline(cin, line))

        cout << line << endl;

    return 0;

}

3.2.3 string对象的操作

size()操作返回的是string::size_type

size是这个word的长度

上面说了,这个word中的字符可以是ASCII中的任何一个

因此,自然的,函数来判断word中的字符是哪个类型的。

isalnum(c) 字母或数字 | isalpha(c) 字母 | iscntrl(c) 控制字符 。 。 。

这些函数都在cctype中.

3.3 标准库vector类型

vector是一个类模板

3.3.1 vector对象的定义和初始化

vector<T> v1; vector<T> v2(v1); vector<T> v3(n,i); vector<T> v4(n);

如果没有指定元素的初始化式,那么将进行值初始化,

即:vector<int> fvec(10); //10 elements, each initialized to 0

for(vector<int>::size_type ix = 0; ix != ivec.size(); ++ix)

FOR循环用!= 而不用<

3.3.2 vector 对象的操作

v.empty(); v.size(); v.push_back(t); v[n]; v1 = v2; v1 == v2; !=, < <=, >, >=

3.4 迭代器简介

除了使用下标来访问vector对象的元素外,标准库还提供了另一种访问元素的方法,使用迭代器.

迭代器是一种检查容器内元素并遍历元素的数据类型.

标准库为每一种标准容器定义了一种迭代器类型.

vector<int>::iterator iter;

begin操作返回的是第一个元素,end操作返回的是迭代器指向的vector的"末端元素的下一个".

vector<int>::iterator iter = ivec.begin();

如果vector为空,begin返回迭代器与end返回的迭代器相同.

由end操作返回的迭代器并不指向vector中任何实际元素,只起一个哨兵的作用.

迭代器类型的解引用操作返回迭代器当前所指向的元素. 根据上面定义,*iter 就是 ivec[0]。

*iter = 0; 就是将ivec的第一个元素赋值0

如果iter指向第一个元素,则++iter指向第二个元素.

for(vector<int>::size_type ix = 0; ix != ivec.size(); ++ix)

    ivec[ix]=0;

for(vector<int>::iterator iter = ivec.begin(); iter != ivec.end(); ++iter)

    iter = 0;

const_iterator,只读迭代器.

迭代器的算术操作

iter + n ; iter - n; iter1 - iter2;  vector<int>::iterator mid = vi.begin() + vi.size() / 2;

3.5 标准库bitset类型

原文地址:https://www.cnblogs.com/jimwind/p/2820565.html