【编程基础】C++ Primer快速入门五:实用的模板库

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

另一种标准库类型 bitset,她提供了一些方法的集合,我们可以利用这些方法来像C语言那样控制整数的二进制表示的一个个比特位,比如01110101,我们可以利用bitset里提供的操作符来做与或非运算。

与整型值上的内置位操作符相比,bitset 类类型提供了一种更方便的处理位的方式,她就好像前者是为C设计的,而后者是专门为C++设计的。各人的孩子各人爱,我们既然使用C++,就用改多用bitset,不用、少用前者。

我啥我们在C++里要多用这些高级类型的数据呢?这是因为C语言定义的是低层数据类型,他们是机器相关的,比如在8位单片机上,int只有8位,32位处理器上,int用32位来表示。即据其具体机器表示来定义。

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

这其中,有两种重要的标准库类型是 string 和 vector。string 类型代表C++的字符串,vector代表数组,可用于保存一组指定类型的对象。

下面我举个例子:

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

#include <string>

using std::string;

int main() {

string girl1; 为空串 string girl2(girl1); 将 girl2 初始化为 girl1 的一个副本

string girl3("value"); 将girl3 初始化为一个字符串的副本 string girl4(n, 'c'); 将 girl4 初始化为字符 'c' 的 n 个副本

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

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

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

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

}

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-07-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏从流域到海域

《笨办法学Python》 第29课手记

《笨办法学Python》 第29课手记 本节课讲if语句。 本节内容比较简单,如果觉得你的代码没有错误,但运行时报错,那么你的代码肯定有错误。相信我解释器是已经...

1946
来自专栏菜鸟前端工程师

JavaScript学习笔记021-常用排序算法

512
来自专栏云霄雨霁

设计模式----工厂方法模式

1350
来自专栏开发技术

排序之归并排序

  “归并”一词的中文含义就是合并、并入的意思,而在数据结构中的定义是将两个或两个以上的有序表组合成一个新的有序表。既然是归并、并入,那么必然就有子序列了,子序...

1134
来自专栏搜云库

《十大经典排序算法》简介

十大经典排序算法 排序算法是《数据结构与算法》中最基本的算法之一。 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的...

1926
来自专栏诸葛青云的专栏

C语言夺命题十例,为啥C语言的总是这么恶趣味?

这些问题测试了C语言的高级知识,包括一些很少使用的特性。有效的C编程需要对诸如未定义的行为,递归和指针算术等概念有深入的理解,但是这些故意复杂的例子并不代表现实...

1553
来自专栏pangguoming

全面理解面向对象的 JavaScript

前言 当今 JavaScript 大行其道,各种应用对其依赖日深。web 程序员已逐渐习惯使用各种优秀的 JavaScript 框架快速开发 Web 应用,从而...

36810
来自专栏desperate633

设计模式之工厂方法模式(FACTORY METHOD)问题模拟工厂方法模式分析依赖倒置原则小结

工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。 我们依然接着简单工厂模式提出的披萨店问题继续探讨

854
来自专栏余林丰

工厂模式——简单工厂模式

工厂模式分三类:简单工厂模式、工厂方法模式、抽象工厂模式。 首先介绍比较简单一种工厂模式——简单工厂模式。 我们以计算器作为一个例子来说明工厂模式到底是什么。作...

2016
来自专栏女程序员的日常

虚函数&多态

对于经常被问到的虚函数和多态的问题,发现百度百科回答得十分详细,所以自己在百度百科上的解释进行总结 一、虚函数 (1)虚函数简介:在某基类中声明为virtua...

2221

扫码关注云+社区