C++ Primer快速入门之五:实用的模板库

更新:重新排版代码格式

除上篇博客介绍的基本数据类型外,C++ 还定义了一个内容丰富的抽象数据类 型标准库。包括 string 和 vector,它们分别定义了字符串和矢量(集合)。string 和 vector 往往用迭代器iterator访问 string 中的字符,或者 vector 中的元素。

C++ Primer快速入门之五:实用的模板库
      另一种标准库类型 bitset,她提供了一些方法的集合,我们可以利用这些方法来像C语言那样控制整数的二进制表示的一个个比特位,比如01110101,我们可以利用bitset里提供的操作符来做与或非运算。与整型值上的内置位操作符相比,bitset 类类型提供了一种更方便的处理位的方式,她就好像前者是为C设计的,而后者是专门为C++设计的。各人的孩子各人爱,我们既然使用C++,就用改多用bitset,不用、少用前者。

C++ Primer快速入门之五:实用的模板库
       那啥,我们为什么在C++里要多用这些高级类型的数据呢?这是因为C语言定义的是低层数据类型,他们是机器相关的,比如在8位单片机上,int只有8位,32位处理器上,int用32位来表示。即据其具体机器表示来定义。


       除了这些与C语言中定义相对应的类型外,C++ 标准库还定义了自己独有的高级的抽象数据类型。它使得我们在使用这些类型表示问题时不必明白数据到底如何表示的(到底是8位,32位),只需知道这些抽象数据类型支持哪些操作就可以了。

C++ Primer快速入门之五:实用的模板库
       这其中,有两种重要的标准库类型是 string 和 vector。string 类型代表C++的字符串,vector代表数组,可用于保存一组指定类型的对象。

下面我举个例子:

使用 string 类型对象,必须包含相关头文件。如果提供了合适的关键字using 声明,那么编写出来的程序将会变得简短些:


[cpp] view plaincopy

  1. #include <string>  

  2. using std::string;   

  3. int main()  

  4. {  

  5.   string girl1;          //为空串  

  6.   string girl2(girl1);   // 将 girl2 初始化为 girl1 的一个副本  

  7.   string girl3("value"); //将girl3 初始化为一个字符串的副本  

  8.   string girl4(n, 'c');  //将 girl4 初始化为字符 'c' 的 n 个副本  

  9.   cin >> girl1;          // 读进来以空格分开的字符串进入girl1  

  10.   cout << girl1 << endl; //输出 girl1  

  11.   vector<int> boy1;      // boy1相当于int数组  

  12.   vector<int> boy2(boy1);//拷贝boy1的元素进入boy2  

  13. }  


本文属原创,转载请注明出处,违者必究

关注微信公众平台:程序员互动联盟(coder_online),你可以第一时间获取原创技术文章,和(java/C/C++/Android/Windows/Linux)技术大牛做朋友,在线交流编程经验,获取编程基础知识,解决编程问题。程序员互动联盟,开发人员自己的家。

C++ Primer快速入门之五:实用的模板库


你可能感兴趣的:(C++ Primer快速入门之五:实用的模板库)