IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++的基于对象编程范式、常用STL容器和C++11标准 -> 正文阅读

[C++知识库]C++的基于对象编程范式、常用STL容器和C++11标准

前言

C++的基于对象编程范式、常用STL容器和C++11标准。


基于对象编程范式

面向过程编程范式的例子

#include <iostream>

using std::cout;
using std::endl;

int main()
{
    int num1 = 1;
    int num2 = 2;
    
    int sum = num1 + num2;

    cout << sum << endl;

    return 0;
}

基于对象编程范式的例子

#include <iostream>

using std::cout;
using std::endl;

class GetSum
{
public:
    int calculation(const int &num1, const int &num2)
    {
        int sum = num1 + num2;
        
        return sum;
    }
};

int main()
{
    int num1 = 1;
    int num2 = 2;

    class GetSum get_sum;
    int sum = get_sum.calculation(num1,num2);

    cout << sum << endl;

    return 0;
}

基于对象和面向对象编程范式的区别

基于对象编程范式:

  • 具有“封装”特性
  • 常用于中小项目

面向对象编程范式:

  • 具有“封装”、“继承”和“多态”特性
  • 使用虚函数、重写和设计模式等技术
  • 常用于大项目

常用STL容器

顺序容器:

  • 数组/向量
  • 链表
  • 队列

关联容器:

  • 图/映射
  • 集合
  • 对组
  • 元组

数组/向量

名称底层原理说明
array静态数组C++11标准
vector动态数组

链表

名称底层原理说明
list双向链表
forward_list单向链表C++11标准

队列

名称底层原理说明
deque管理数组+多个被管理数组
queuedeque容器适配器
priority_queue堆(完全二叉树)

名称底层原理说明
stackdeque容器适配器

图/映射

名称底层原理说明
map红黑树
multimap红黑树
unordered_map哈希表C++11标准
unordered_multimap哈希表C++11标准

集合

名称底层原理说明
set红黑树
multiset红黑树
unordered_set哈希表C++11标准
unordered_multiset哈希表C++11标准

对组

名称底层原理说明
pair结构体struct

元组

名称底层原理说明
tuple递归继承类C++11标准

总表

名称底层原理说明
array静态数组C++11标准
vector动态数组
list双向链表
forward_list单向链表C++11标准
deque管理数组+多个被管理数组
queuedeque容器适配器
priority_queue堆(完全二叉树)
stackdeque容器适配器
map红黑树
multimap红黑树
unordered_map哈希表C++11标准
unordered_multimap哈希表C++11标准
set红黑树
multiset红黑树
unordered_set哈希表C++11标准
unordered_multiset哈希表C++11标准
pair结构体struct
tuple递归继承类C++11标准

C++11标准

依据《C++ Primer中文版(第5版)》XXV页的“C++11的新特性”栏所列顺序

可能常用的用粗体标示

  • long long 类型
  • 列表初始化
  • nullptr 常量
  • constexpr 变量
  • 类型别名声明
  • auto 类型指示符
  • decltype 类型指示符
  • 类内初始化
  • 使用 auto 或 decltype 缩写类型
  • 范围 for 语句
  • 定义 vector 对象的 vector (向量的向量)
  • vector 对象的列表初始化
  • 容器的 cbegin 和 cend 函数
  • 标准库函数 begin 和 end 函数
  • 使用 auto 和 decltype 简化声明
  • 除法的舍入规则
  • 用大括号包围的值列表赋值
  • 将 sizeof 用于类成员
  • 范围 for 语句
  • 标准库 initializer_list 类
  • 列表初始化返回值
  • 定义尾置返回类型
  • 使用 decltype 简化返回类型定义
  • constexpr 函数
  • 使用=default 生成默认构造函数
  • 类对象成员的类内初始化
  • 委托构造函数
  • constexpr 构造函数
  • 用 string 对象处理文件名
  • array 和 forward_list 容器
  • 容器的 cbegin 和 cend 函数
  • 容器的列表初始化
  • 容器的非成员函数 swap
  • 容器 insert 成员的返回类型
  • 容器的 emplace 成员
  • shrink_to_fit
  • string 的数值转换函数
  • lambda 表达式
  • lambda 表达式中的尾置返回类型
  • 标准库 bind 函数
  • 关联容器的列表初始化
  • 列表初始化 pair 的返回类型
  • pair 的列表初始化
  • 无序容器
  • 智能指针
  • shared_ptr 类
  • 动态分配对象的列表初始化
  • auto 和动态分配
  • unique_ptr 类
  • weak_ptr 类
  • 范围 for 语句不能应用于动态分配数组
  • 动态分配数组的列表初始化
  • auto 不能用于分配数组
  • allocator::construct 可使用任意构造函数
  • 将=default 用于拷贝控制成员
  • 使用=delete 阻止拷贝类对象
  • 用移动类对象代替拷贝类对象
  • 右值引用
  • 标准库 move 函数
  • 移动构造函数和移动赋值
  • 移动构造函数通常应该是noexcept
  • 移动迭代器
  • 引用限定成员函数
  • function 类模板
  • explicit 类型转换运算符
  • 虚函数的 override 指示符
  • 通过定义类为 final 来组阻止继承
  • 虚函数的 override 和 final 指示符
  • 删除的拷贝控制和继承
  • 继承的构造函数
  • 声明模板类型形参为友元
  • 模板类型别名
  • 模板函数的默认模板参数
  • 实例化的显式控制
  • 模板函数与尾置返回类型
  • 引用折叠规则
  • 用 static_cast 将左值转换为右值
  • 标准库 forward 函数
  • 可变参数模板
  • sizeof…运算符
  • 可变参数模板与转发
  • 标准库 tuple 类模板
  • 新的 bitset 运算
  • 正则表达式库
  • 随机数库
  • 浮点数格式控制
  • noexcept 异常指示符
  • noexcept 运算符
  • 内联命名空间
  • 继承的构造函数与多重继承
  • 有作用域的 enum
  • 说明类型用于保存 enum 对象
  • enum 的前置声明
  • 标准库mem_fn 类模板
  • 类类型的 union 成员

大致分类

改进:

  • nullptr 常量
  • constexpr 变量
  • 定义 vector 对象的 vector (向量的向量)

语法糖:

  • auto 类型推导
  • 列表初始化
  • 范围 for 语句
  • lambda 表达式

智能指针:

  • shared_ptr
  • unique_ptr
  • weak_ptr

扩充容器:

  • array
  • forward_list
  • unordered_map
  • unordered_multimap
  • unordered_set
  • unordered_multiset
  • tuple

扩充库:

  • bitset
  • 正则表达式
  • 随机数

移动语义:

  • &&右值引用
  • std::move()
  • 移动构造函数和移动赋值运算符

面向对象编程范式相关:

  • explicit
  • =default
  • =delete
  • override
  • final

面向泛型编程范式相关:

  • 模板函数的默认模板参数
  • 可变参数模板

总结

C++的基于对象编程范式、常用STL容器和C++11标准。


参考资料


作者的话

  • 感谢参考资料的作者/博主
  • 作者:夜悊
  • 版权所有,转载请注明出处,谢谢~
  • 如果文章对你有帮助,请点个赞或加个粉丝吧,你的支持就是作者的动力~
  • 文章在描述时有疑惑的地方,请留言,定会一一耐心讨论、解答
  • 文章在认识上有错误的地方, 敬请批评指正
  • 望读者们都能有所收获

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-12-25 10:47:31  更:2022-12-25 10:49:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 0:11:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码