c++Primer,三,标准库类型

来源:互联网 发布:步步高v205软件java 编辑:程序博客网 时间:2024/04/30 13:36

第三章 标准库类型

前面说起类型,有内置类型和自定义类型,当类类型更加通用,它就被上升到库里面,成为了标准库类型。

   命名空间:使用命名空间程序员可以避免与库中定义的名字相同而引起无意冲突。当我们使用标准库中的名字时,必须显式地表达出使用的是命名空间 std 下的名字。使用 using 声明可以在不需要加前缀 namespace_name:: 的情况下访问命名空间中的名字。一旦使用了 using 声明,我们就可以直接引用名字,而不需要再引用该名 字的命名空间。

本章大致介绍了几张常用的标准库类型,已满足下面的学习,更多的应该看看“c++标准库”,学习更多的用法。

标准库string类型:如前面所说,一段字符是用char数组存放的,所以这里的string并不是你所看到的字符串,而是一个类类型,可以用来包装一下字符串。引入<string>头文件,这里注意原<string.h>用来处理字符串的函数现被放置到<cstring>里了,关于标准库头文件的命名规则,稍微看下就懂了。使用string类可以方便的操作字符串。可以使用c字符串来初始化,甚至可以用下标[]来单个获取字符,当需要用到常规的字符串,也就是char数组时,可以直接获得c++string的cstring风格字符串。

标准库vector类型:vector 是同一种类型的对象的集合,每个对象都有一个对应的整数索引值。 和 string 对象一样, 标准库将负责管理与存储元素相关的内存。 我们把 vector 称为容器,是因为它可以包含其他对象。一个容器中的所有对象都必须是同一种类型的。vector 是一个类模板(class template),也就是说它在定义的时候,可以被定义成各种类型的容器。它和数组非常像,但用起来更安全。

迭代器简介:除了使用下标来访问 vector 对象的元素外,标准库还提供了另一种访问元素的方法:使用迭代器(iterator)。迭代器是一种检查容器内元素并遍历元素 的数据类型。标准库为每一种标准容器(包括 vector)定义了一种迭代器类型,它也是模板类。迭代器类型提供了比下标操作更通用化的方法: 所有的标准库容器都定义了相应的迭代器类型,而只有少数的容器支持下标操作。vector与迭代器的配合,就像数组与指针的配合。

eg:

1,

int arr[4] = {1, 2, 3, 4};

for(int* p = arr; p != arr+4; ++p)

{

  cout<<*p;

}

2,

vector<int> ivec;

ivec.push_back(1);

ivec.push_back(2);

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

{

  *iter = 8;

}

标准库bitset类型:bitset 类是一种类模板在定义 bitset 时,要明确 bitset 含有多少位,须在尖括号内给出它的长度值位是用来保存一组项或条件的 yes/no 信息(有时也称标志)的简洁方法,可以操作bitset的每一位。

本章简要介绍了上述三个库类型,多使用几次,基本就熟悉了。

0 0
原创粉丝点击