83 lines
3.4 KiB
Markdown
83 lines
3.4 KiB
Markdown
|
1. **构造函数**:
|
|||
|
- `vector<T>`:创建一个空的向量,元素类型为 `T`。
|
|||
|
- `vector<T>(size_type count)`:创建包含 `count` 个默认构造的元素的向量。
|
|||
|
- `vector<T>(size_type count, const T& value)`:创建包含 `count` 个值为 `value` 的元素的向量。
|
|||
|
- `vector<T>(InputIterator first, InputIterator last)`:使用迭代器范围 `[first, last)` 中的元素创建向量。
|
|||
|
|
|||
|
2. **元素访问**:
|
|||
|
- `vector::operator[]`:通过索引访问元素。
|
|||
|
- `vector::at(size_type pos)`:通过位置访问元素,如果越界会抛出 `std::out_of_range` 异常。
|
|||
|
- `vector::front()`:返回第一个元素的引用。
|
|||
|
- `vector::back()`:返回最后一个元素的引用。
|
|||
|
- `vector::data()`:返回指向底层数据的指针。
|
|||
|
|
|||
|
3. **迭代器**:
|
|||
|
- `vector::begin()`:返回指向第一个元素的迭代器。
|
|||
|
- `vector::end()`:返回指向最后一个元素后面位置的迭代器。
|
|||
|
- `vector::rbegin()`:返回指向最后一个元素的逆向迭代器。
|
|||
|
- `vector::rend()`:返回指向第一个元素前面位置的逆向迭代器。
|
|||
|
|
|||
|
4. **容量**:
|
|||
|
- `vector::size()`:返回向量中元素的数量。
|
|||
|
- `vector::max_size()`:返回向量能容纳的最大元素数量。
|
|||
|
- `vector::empty()`:检查向量是否为空。
|
|||
|
- `vector::reserve(size_type new_cap)`:为向量预留至少能容纳 `new_cap` 个元素的空间。
|
|||
|
- `vector::capacity()`:返回向量当前能容纳的元素数量。
|
|||
|
|
|||
|
5. **修改容器**:
|
|||
|
- `vector::push_back(const T& value)`:在向量末尾添加一个元素。
|
|||
|
- `vector::pop_back()`:移除向量末尾的元素。
|
|||
|
- `vector::insert(iterator pos, const T& value)`:在指定位置插入一个元素。
|
|||
|
- `vector::erase(iterator pos)`:移除指定位置的元素。
|
|||
|
- `vector::clear()`:清空向量中的所有元素。
|
|||
|
|
|||
|
6. **比较**:
|
|||
|
- `vector::operator==`、`vector::operator!=`、`vector::operator<`、`vector::operator<=`、`vector::operator>`、`vector::operator>=`:用于比较两个向量的操作符。
|
|||
|
|
|||
|
7. **其他操作**:
|
|||
|
- `vector::swap(vector& other)`:交换两个向量的内容。
|
|||
|
- `vector::emplace_back(Args&&... args)`:在向量末尾构造一个元素。
|
|||
|
- `vector::shrink_to_fit()`:将向量的容量调整为其当前元素数量。
|
|||
|
|
|||
|
```c++
|
|||
|
#include <iostream>
|
|||
|
#include <vector>
|
|||
|
|
|||
|
int main() {
|
|||
|
// 创建一个空的整数向量
|
|||
|
std::vector<int> numbers;
|
|||
|
|
|||
|
// 在向量末尾添加元素
|
|||
|
numbers.push_back(10);
|
|||
|
numbers.push_back(20);
|
|||
|
numbers.push_back(30);
|
|||
|
|
|||
|
// 使用迭代器遍历向量并输出元素
|
|||
|
std::cout << "Vector elements:";
|
|||
|
for (auto it = numbers.begin(); it != numbers.end(); ++it) {
|
|||
|
std::cout << " " << *it;
|
|||
|
}
|
|||
|
std::cout << std::endl;
|
|||
|
|
|||
|
// 访问向量的第一个和最后一个元素
|
|||
|
std::cout << "First element: " << numbers.front() << std::endl;
|
|||
|
std::cout << "Last element: " << numbers.back() << std::endl;
|
|||
|
|
|||
|
// 检查向量是否为空
|
|||
|
std::cout << "Is the vector empty? " << (numbers.empty() ? "Yes" : "No") << std::endl;
|
|||
|
|
|||
|
// 获取向量的大小和容量
|
|||
|
std::cout << "Vector size: " << numbers.size() << std::endl;
|
|||
|
std::cout << "Vector capacity: " << numbers.capacity() << std::endl;
|
|||
|
|
|||
|
// 清空向量
|
|||
|
numbers.clear();
|
|||
|
|
|||
|
std::cout << "Vector size after clear: " << numbers.size() << std::endl;
|
|||
|
|
|||
|
return 0;
|
|||
|
}
|
|||
|
|
|||
|
```
|
|||
|
|