- C语言是结构化和模块化的语言,适合处理较小规模的程序;
- 对于复杂问题,规模较大的程序,需要高度抽象和建模时,C语言就不合适了;
- 20世纪80年代,计算机界提出了OOP(object oriented programming)面向对象思想;
- C++是基于C语言产生的,即可进行C语言的过程化程序设计,也可进行以抽象数据类型为特点的基于对象的程序设计,还可进行面向对象的程序设计;

C++ 标准库
C++ 标准库是 C++ 编程语言的核心组成部分,提供了一系列经过充分测试和高度优化的可重用组件和工具;极大地提高开发效率,让程序员能够专注于业务逻辑而不是底层实现细节,是现代C++编程不可或缺的工具集;没有标准库,每个C++程序都会变得极其复杂和冗长;一般路径为:C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\include;
核心作用是提供基础构建块,避免重复造轮子;
主要功能:
数据存储和管理,如<string>、<vector>、<map>等;
算法处理,如<algorithm>、<numeric>等;
输入输出操作,如<iostream>、<fstream>等;
内存管理,如<memory>等;
多线程编程,如<thread>、<mutex>等;
优势:
- 高效性,如容器和算法是经过高度优化的;
- 可移植性,同一个代码可在不同平台运行;
- 类型安全,编译时类型检查;
- 内存安全,智能指针自动管理生命周期,无需手动delete,自动防止内存泄漏;
C++ Standard Library
├── Standard Template Library (STL) - 标准模板库
├── Input/Output Library - 输入输出库
├── C Standard Library - C标准库
├── Concurrency Library - 并发库
└── Other Utilities - 其他工具
标准模板库STL
- 容器,数据存储:
- 序列容器:vector、list、forward_list、deque、array;
- 关联容器:set、map、unordered_set、unordered_map;
- 适配器:stack、queue;
- 算法,数据处理:
- <algorithm>、<numeric>;
- 迭代器,访问桥梁:
Iterators;
注,std(standard)是 C++ 标准库中所有标识符所在的命名空间,包含整个C++标准库,用于避免命名冲突和组织代码;
// 在 <vector> 头文件中大致是这样的结构:
namespace std {
template<typename T, typename Allocator = allocator<T>>
class vector {
// vector 的实现
};
// 相关的非成员函数
template<typename T>
bool operator==(const vector<T>&, const vector<T>&);
// 其他相关定义...
}

C语言适合小型程序和结构化编程,但对于复杂和大规模的软件项目,其局限性明显。面向对象编程(OOP)应运而生,C++作为C语言的扩展,支持过程化、抽象数据类型和面向对象编程,提供了更强大的软件设计能力。

1069

被折叠的 条评论
为什么被折叠?



