# c++api概览
# c++发布历史
版本号 | 发布时间 | 说明 |
---|---|---|
c++98 | 1998 | 第一个正式c++标准 |
c++03 | 2003 | 给c++98打的补丁 |
c++11 | 2011 | 一次全面的大进化,新增STL容器,多线程特性 |
c++14 | 2014 | c++11的扩展,主要提供漏洞修复和小改进 |
c++17 | 2017 | ------ |
# c++编译器
名称 | 描述 |
---|---|
Mingw32 | GCC家族,Win32平台下的编译器 |
g++ | GCC家族,其它编译器都是由他导出 |
Visual C++ | MS家族,是Visual Studio使用的编译器 |
Borland C++ | 由Borland公司开发 |
# 输入输出
#include <iostream>
using namespace std;
int a,b;
//输入
cin>>a;
//换行符
cin>>endl;
//输出
cout<<b;
//换行符
cout<<endl;
# 基本数据类型(7种)
类型 | 关键字 | 位数 |
---|---|---|
布尔 | bool | 1 |
字符 | char | 1 |
整型 | int | 4 |
浮点型 | float | 4 |
双浮点型 | double | 8 |
无类型 | void | |
宽字符型 | wchar_t | 2或4 |
# 字符串
#include <string>
string str1 = "hello,world";
# c++容器
- 标准库为相关对象的存储集合,提供了各种类型安全容器,容器是类模板
- 容器可以分为三个类别: 序列容器,关联容器和容器适配器
# 序列容器
- 此类容器可以维护插入元素的顺序
# vector
- vector,即序列容器,行为类似于数组,可以根据要求自动增长,
- vector是多数应用程序的首选序列容器
# array
- 具备vector的某些有点,长度不够灵活
# deque
- 双端队列支持在容器的起点和终点快速插入和删除
- 不具备连续性
# list
- 双向链接列表
- 无法随机访问
# forward_list
- 单独链表,list的向前访问版本
# 关联容器
- 关联容器中,按照预定义的顺序插入元素,如升序排序;
- 关联容器分为两个子集,映射和组集
# map
- map又称为字典,包含键值对。
- 键用于对序列排序,值与该键关联
- 其无序版本为 unordered_map
# set
- 按升序排列每个元素的容器,值也是键
- 无序版本为 unordered_set
# 容器适配器
- 序列容器或关联容器的变体
- 其主要对接口进行了一些限制
# queue
- 遵循 先进先出语义
# priority_queue
- 最高值的元素始终排在队列的第一位
# stack
- 遵循先进后出语义