C++语法基础三
1. C++优势
-
更便捷的输入输出:使用更简洁的cin和 cout
-
强大的STL库:C++提供了丰富的数据结构和算法库,让我们能够快速实现复杂功能,
如: vector:动态数组、
queue、stack:队列和栈、
set、map:集合和映射、
sort、binary_search等算法
for循环
- 基于范围的for循环
vector<int> arr = {1, 2, 3, 4, 5};
// 传统方式
for (int i = 0; i < arr.size(); i++) {
cout << arr[i] << " ";
}
// C++11范围for循环
for (int x : arr) {
cout << x << " ";
}
// 如果需要修改元素,使用引用
for (int& x : arr) {
x *= 2; // 将每个元素乘以2
}
- auto关键字(能够让编译器自动推导变量类型,简化代码)
vector<int> arr = {1, 2, 3, 4, 5};
// 传统方式:需要写出完整类型
for (vector<int>::iterator it = arr.begin(); it != arr.end(); it++) {
cout << *it << " ";
}
// 使用auto:编译器自动推导类型
for (auto it = arr.begin(); it != arr.end(); it++) {
cout << *it << " ";
}
// 更简洁的范围for + auto
for (auto x : arr) {
cout << x << " ";
}
map<string, vector<int>> data;
// 传统方式
for (map<string, vector<int>>::iterator it = data.begin(); it != data.end(); it++) {
// 处理数据
}
// 使用auto
for (auto& pair : data) {
string key = pair.first;
vector<int>& values = pair.second;
// 处理数据
}
快速输入输出
ios::sync_with_stdio(false):取消C++流与C标准流的同步,提高效率
cin.tie(nullptr):取消cin与cout的绑定,进一步提速
2、STL架构
-
STL主要包含以下六大组件:
容器(Containers):存储数据的数据结构
迭代器(Iterators):用于访问容器元素的"指针"
算法(Algorithms):各种常用算法的实现
函数对象(Function Objects):行为类似函数的对象
适配器(Adapters):用来修饰容器、迭代器或函数对象的接口
分配器(Allocators):负责空间配置与管理
浙公网安备 33010602011771号