【编程基础】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 条评论
登录 后参与评论

相关文章

来自专栏Coding迪斯尼

reactjs自制Monkey语言编译器:解析组合表达式,ifelse语句块和间套函数调用

383
来自专栏前端架构

JavaScript绝句的小研究

前几日在网上看到一篇文章:JavaScript绝句,看了以后觉得里面的代码颇为有趣,不过文章里面只是简单的说了这样写的目的和结果,却没有令读者起到既知其然,又知...

451
来自专栏原创

如何用JavaScript进行数组去重

今天的文章和大家谈一谈如何用JavaScript进行数组去重,这是一道常见的面试(笔试)题,可以很好地考察出一个人的逻辑思维及边界考虑情况,希望此文能够帮助大家...

2365
来自专栏程序员互动联盟

聊聊C语言-编程世界的容器

上一篇聊聊C语言-存储世界的奥秘,我们介绍了计算机的整个存储体系设计,了解了我们的数据在计算机中是怎么被存储的。然而在我们的编程中我们的代码也是按照这个结构被计...

3327
来自专栏逸鹏说道

Python3 与 C# 基础语法对比(String专栏-新排版)

在线编程:https://mybinder.org/v2/gh/lotapp/BaseCode/master

782
来自专栏Golang语言社区

Golang语言--中间的循环

在Go语言中只有很少的几个控制结构,它没有while或者do-while循环。 但是它有for、switch、if。而且switch接受像for那样可选的初始化...

4007
来自专栏编程

Kotlin学习(三)——基本类型,包,控制流:if、when、for、while,Break和continue

作者:刘某人程序员 声明:未经原作者允许请勿转载 ? 一.基本类型 Kotlin的数字表现,如下 Double 64 Float 32 Long 64 Int ...

17510
来自专栏北京马哥教育

Python 中被忽略的 else

1264
来自专栏java一日一条

常见Java面试题 – 第四部分:迭代(iteration)和递归(recursion)

A. 可重入方法(re-entrant method)是可以安全进入的方法,即使同一个方法正在被执行,深入到同一个线程的调用栈里面也不会影响此次执行的安全性。一...

432
来自专栏小樱的经验随笔

【Python学习笔记之三】lambda表达式用法小结

除了def语句之外,Python还提供了一种生成函数对象的表达式形式。由于它与LISP语言中的一个工具很相似,所以称为lambda。就像def一样,这个表达式创...

2555

扫描关注云+社区