Add stl vector
This commit is contained in:
parent
7e474083a9
commit
a99d75b44c
@ -66,6 +66,7 @@
|
|||||||
- [排序](./stl_sorting.md)
|
- [排序](./stl_sorting.md)
|
||||||
- [哈希表](./stl_hash_table.md)
|
- [哈希表](./stl_hash_table.md)
|
||||||
- [字符串](./stl_string.md)
|
- [字符串](./stl_string.md)
|
||||||
|
- [向量](./stl_vector.md)
|
||||||
- [优先级队列](./stack_and_queue.md)
|
- [优先级队列](./stack_and_queue.md)
|
||||||
|
|
||||||
# 经典代码
|
# 经典代码
|
||||||
|
59
notes/src/stl_vector.md
Normal file
59
notes/src/stl_vector.md
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
# 向量
|
||||||
|
|
||||||
|
```cpp
|
||||||
|
#include <algorithm>
|
||||||
|
#include <iostream>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
int main(int argc, const char *argv[]) {
|
||||||
|
// 初始化
|
||||||
|
std::vector<int> v1;
|
||||||
|
// 创建长度为 10 的向量(缺省值填充)
|
||||||
|
std::vector<int> v2(10);
|
||||||
|
// 创建长度为 10,值为 7 的向量
|
||||||
|
std::vector<int> v3(10, 7);
|
||||||
|
// 从另一个向量深拷贝
|
||||||
|
std::vector<int> v4 = v2;
|
||||||
|
|
||||||
|
// 释放内存
|
||||||
|
v4.clear();
|
||||||
|
v4.shrink_to_fit();
|
||||||
|
|
||||||
|
// 修改数据
|
||||||
|
v3[1] = 100;
|
||||||
|
// 删除数据,传递进去的参数是迭代器
|
||||||
|
v3.erase(v3.begin() + 1);
|
||||||
|
v3.erase(v3.begin() + 3, v3.end());
|
||||||
|
// 插入到尾部
|
||||||
|
v3.push_back(67);
|
||||||
|
// 弹出尾部元素
|
||||||
|
v3.pop_back();
|
||||||
|
// 插入到最前面和最后面
|
||||||
|
// 意思是插入完成后,第一个参数所在位置的值是第二个参数
|
||||||
|
v3.insert(v3.begin(), 2);
|
||||||
|
v3.insert(v3.end(), 2);
|
||||||
|
// 访问第一个数和最后一个数
|
||||||
|
std::cout << v3.front() << " " << v3.back() << std::endl;
|
||||||
|
// 合并两个向量
|
||||||
|
// 意思是把 v2 向量插入到 v3 的尾部
|
||||||
|
v3.insert(v3.end(), v2.begin(), v2.end());
|
||||||
|
|
||||||
|
// 交换 v3 和 v2,相当于把 v3 的内容覆盖到 v2,把 v2 的内容覆盖到 v3
|
||||||
|
v3.swap(v2);
|
||||||
|
// 重新调整大小
|
||||||
|
// 如果传入的参数超过了向量原本的长度,则在扩展后的末尾填充缺省值
|
||||||
|
// 如果传入的参数小于向量原本的长度,则只保留前 N 个元素,后面的部分删掉
|
||||||
|
v3.resize(10);
|
||||||
|
// 如果传入的参数超过了向量原本的长度,则在扩展后的末尾填充 99
|
||||||
|
v3.resize(15, 99);
|
||||||
|
// 查找最大值和最小值,返回的是一个指针
|
||||||
|
// #include <algorithm>
|
||||||
|
std::cout << *std::max_element(v3.begin(), v3.end()) << std::endl;
|
||||||
|
std::cout << *std::min_element(v3.begin(), v3.end()) << std::endl;
|
||||||
|
|
||||||
|
for (int i = 0; i < v3.size(); ++i) {
|
||||||
|
std::cout << v3[i] << " ";
|
||||||
|
}
|
||||||
|
std::cout << std::endl;
|
||||||
|
}
|
||||||
|
```
|
Loading…
Reference in New Issue
Block a user