# 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

  • 遵循先进后出语义