更新:又一次排版代码格式

除上篇博客介绍的基本数据类型外,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 类型对象。必须包括相关头文件。

假设提供了合适的keywordusing 声明,那么编写出来的程序将会变得简短些:

#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),你能够第一时间获取原创技术文章。和(java/C/C++/Android/Windows/Linux)技术大牛做朋友。在线交流编程经验。获取编程基础知识。解决编程问题。

程序猿互动联盟。开发者自己的家。

C++ Primer高速入门之五:有用的模板库的更多相关文章

  1. C++ Primer高速入门之三:几种常见的控制语句

    语句总是顺序运行的:第一条语句运行完了接着是第二条,第三条等等.这是最简单的情况,为了更好的控制语句的运行.程序设计语言提供了多种控制结构支持更为复杂的语句运行.我们就来看看C++ 提供的控制方式. ...

  2. C++ Primer高速入门之六:数组和指针

    更新:勘误,delete [] 猪 我们知道,C语言以及早期的面向结构的语言差点儿都支持数组定义.比方整形数组int 女神[2].表示有俩数: 女神[0], 女神[1].她们都是整数. C++ 语言为 ...

  3. 《C++ Primer Plus》16.3 标准模板库 学习笔记

    STL提供了一组表示容器.迭代其.函数对象和算法的模板.容器是一个与数组类似的单元,可以存储若干个值.STL容器是同质的,即存储的值的类型相同:算法是完成特定任务(如对数组进行排序或在链表中查找特定值 ...

  4. VS2010/MFC编程入门之五(MFC消息映射机制概述)

    VS2010/MFC编程入门之五(MFC消息映射机制概述)-软件开发-鸡啄米 http://www.jizhuomi.com/software/147.html 上一讲鸡啄米为大家简单分析了MFC应用 ...

  5. Windows下FFmpeg高速入门

    本系列文章导航 Windows下FFmpeg高速入门 ffmpeg參数解释 mencoder和ffmpeg參数具体解释(Java处理视频) Java 生成视频缩略图(ffmpeg) 使用ffmpeg进 ...

  6. Tensorflow高速入门2--实现手写数字识别

    Tensorflow高速入门2–实现手写数字识别 环境: 虚拟机ubuntun16.0.4 Tensorflow 版本号:0.12.0(仅使用cpu下) Tensorflow安装见: http://b ...

  7. C语言高速入门系列(二)

    C语言高速入门系列(二) -----转载请注明出处coder-pig 本节引言: 在前面一节中我们对C语言进行了初步的了解,学会了使用IDE进行代码的编写,编译执行! 在这一节中我们会对C语言的基本的 ...

  8. Swift高速入门之函数

    函数 看一个函数的样例: func addNumbers( let a:Int,let b:Int)->Int{ return a+b; } 实现两个数相加.函数必须以func开头,后面是函数名 ...

  9. C语言高速入门系列(八)

    C语言高速入门系列(八) C语言位运算与文件 本章引言: 在不知不觉中我们的C高速入门系列已经慢慢地接近尾声了,而在这一节中,我们会对 C语言中的位运算和文件进行解析,相信这两章对于一些人来说是陌生的 ...

随机推荐

  1. viewport 640宽的做法 针对iphone和安卓单独设置

    <!DOCTYPE html> <html lang="ch"> <head> <meta charset="utf-8&quo ...

  2. 03C#数据类型

    C#数据类型 值类型和引用类型区别 在C#语言中,值类型变量存储的是指定数据类型的数据,值类型变量的值(或实例)存储在栈(Stack)中,赋值语句是传递变量的值.引用类型(例如类就是引用类型)的实例, ...

  3. C#线程锁使用全功略

    C#线程锁使用全功略 前两篇简单介绍了线程同步lock,Monitor,同步事件EventWaitHandler,互斥体Mutex的基本用法,在此基础上,我们对 它们用法进行比较,并给出什么时候需要锁 ...

  4. python 删除/查找重复项

    l = [1,2,3,2,1] # l = ['你','我','他','她','你'] for i in l: print("the %s has found %s" % (i, ...

  5. sizeof 感知重载,模板具现, 转换规则

    问题:如何侦知任意型别 T 是否可以自动转换为型别 U? 方案:侦测转换能力的想法:合并运用 sizeof 和重载函数. 1 依赖 sizeof,sizeof 有着惊人的能力,你可以把 sizeof  ...

  6. P1759 通天之潜水(不详细,勿看)(动态规划递推,组合背包,洛谷)

    题目链接:点击进入 题目分析: 简单的组合背包模板题,但是递推的同时要刷新这种情况使用了哪些物品 ac代码: #include<bits/stdc++.h> using namespace ...

  7. Python飞机大战实例有感——pygame如何实现“切歌”以及多曲重奏?

    目录 pygame如何实现"切歌"以及多曲重奏? 一.pygame实现切歌 初始化路径 尝试一 尝试二 尝试三 成功 总结 二.如何在python多线程顺序执行的情况下实现音乐和音 ...

  8. [Usaco2009 Nov]lights(高斯消元)

    luogu 点灯游戏应该很多人都在小时候頽过吧 反正我直到现在也不会 很明显一个灯最多只需要点一次 然后高斯消元 解完肯定剩自由元(就是那些全是0的行) 然后这些都爆搜 由于剩下的自由元不会太多 所以 ...

  9. 使用requests+BeaBeautiful Soup爬取妹子图图片

    1. Requests:让 HTTP 服务人类 Requests 继承了urllib2的所有特性.Requests支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动确定 ...

  10. [转]TOpenDialog

    转自:http://www.cnblogs.com/zhangzhifeng/archive/2011/08/04/2127395.html 1.TOpenDialog组件的典型用法“打开”对话框是用 ...