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

【C++ Primer】标准库类型

2013-11-09 23:39 204 查看


三、标准库类型


1. 头文件书写

在头文件中应该只定义确实需要的东西,因此,应该使用完全限定的标准库名字,如std::cout


2. string

string的读入是遇到空白字符就会终止,所以用 cin>>a; 输入"hello world"得到的a=hello;

可以使用getline(cin, line)来读取整个字符串,返回值也是istream

string.size()的返回类型是string::size_type,其与unsigned型具有相同的含义,不要把size的返回值赋给一个int变量;其下标值也是string::size_type类型。

string比较:任意大写字母小于任意小写字母,比较ASCII码

string类型通过[]来访问单个字符

cctype头文件中定义了一系列有用的函数:isalnum,isalpha,isdigit等等

c++中标准库中包含C标准库,一般将c中的"****.h"变成了"c****",两者的内容是一样的,只是后者更适用于c++程序。而且c****中的定义的名字都定义在了命名空间std中;

string在赋值的时候如果中间出现“\0”,则只会记录“\0”之前的标志: string a = "hello\0 word",则a表示的是"hello"


3. vector

vector可以在运行时高效的添加元素。

vector<int> ivec(10),表示初始的vector长度为10,且所有值都初始化为0;

添加一个元素:v.push_back()

v.size()的返回类型为vector<T>:size_type

for循环书写:

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

注意使用的是ivec.size()来进行判断,因为vector可能是动态增长的,同时使用"!="而不是"<",此部分在后面会有解释

difference_type用于表示两个迭代器间的距离,相当于signed,因为相减之后可能为负数

迭代器:

iterator.begin()返回的迭代器指向第一个元素,但itetator.end()不指向任何元素。

const_iterator只能读,不能写,可以用于读取const vector


4. bitset

初始化:

bitset<32> bit;  bit同样可以用于 与或非、抑或操作。

bitset<32> bit(0xffff); 根据bitset的大小将unsigned long转为位,位充足则高位置为0,,不充足则舍弃高位

bitset<32> bit("001100001"); bitset的赋值方式与string的排列刚好相反 

bitset<32> bit(str, pos, n(n可省略))

bit.size(),bit.count()返回的类型是size_t,定义在cstddef头文件中,是一个与机器相关的unsigned类型,但是大小足以保证。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: