您的位置:首页 > 编程语言 > C语言/C++

C++ primer 标准库类型

2017-10-19 15:44 183 查看
通过::引用标准库的名字十分麻烦,使用using可以在不需要加前缀namespace_name ::的情况下访问命名空间中的名字

using namespace::name ;

c++中,单引号是字符,char,双引号是字符串,string

标准库string 类型

#include< string >

using std::string;

cin>>s

string类型的输入操作符读取并忽略开头的所有空白字符,读取字符直到再次遇到空白字符,读取终止

while (cin>>word) 读取未知数目的string对象

一般碰到文件结束标记(EOF )会结束循环,从键盘键入EOF是使用crtl+z

string对象的操作

s.empty() 如果s为空串,返回true,否则返回false

s.size() 返回s中字符的个数

s
返回s中位置为n的字符,位置从0开始

s1+s2 把s1和s2连接成一个新字符,返回新生成的字符串

string::size_type 字符串长度,接受size函数的返回值

vector 是同一种类型的对象的集合,叫做容器

一个容器中所有对象都必须是同一种类型的

使用容器之前必须包含相应的头文件

#include< vector >

using std::vector

下标操作不添加元素,仅能对已知元素进行操作

向vector添加元素 push_back

c++程序员习惯于优先于使用 != 而不是 < 来编写循环判断条件

必须是已经存在的元素,才可以用下标操作符进行索引,通过下标操作进行赋值时,并不会添加任何元素

除了使用下标来访问vector对象的元素外,还可以使用迭代器

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

容器的itearator 类型

vector< int >::iterator iter;

变量iter是vector< int >定义的iteator类型

vector对象的size

成员函数size返回相应vector类定义的size_type的值

vector< int > :: size_type;

各容器都定义了自己的iterator类型用于访问容器内的元素

vector< int >:: iterator iter = ivec.begin(); 将容器ivec的第一个元素返回给迭代器iter

v.push_back(i) 在v的末尾加一个值为 i 的元素

每种容器都定义了begin和end函数

如果容器内有元素的话,begin返回第一个元素

end返回末端元素的下一个,即超出末端迭代器

end操作返回迭代器并不指向vector中任何的元素,只是一个哨兵的作用,表示我们处理完vector中所有的元素

迭代器类型可以使用解引用操作符(*)来访问迭代器所指向的元素 *iter=0

迭代器使用自增操作符向前移动迭代器指向容器的下一个元素 ++iter

用 == 或者 != 操作符来比较两个迭代器,如果两个迭代器对象指向同一个元素,则相等

迭代器的算数操作符

iter + n

iter - n

iter1 - iter2

vector< string >::const_iterator;

常量,不可改变,只可以读取迭代器的内容

任何改变vector长度的操作都会使已存在的迭代器失效

标准库bitset,位集处理

#include < bitset>

using std::bitset;

bitset类是一种类模板,和vector不同的是bitset类型对象区别在长度而不是类型

bitset < n >;

当使用unsigned long值为bitset对象的初始值时,该值转化为二进制的位模式。如果bitset类的长度大于unsigned long 则其余高阶位置为零,如果小于,则只使用unsigned long 的低阶位。

当使用 string 对象初始化bitset时,string对象和bitsets对象之间是反向转化的,string对象的最右边初始化bitset的最左边

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++