vector的操作

vector的操作

//关于元素存取的函数
//operator[] 既重载[]使其类似于数组元素的操纵,实现随机访问
cout<<test.at(1)<<endl;//类似于[]的作用,只是是一个函数行形式
cout<<test.front()<<endl;//显示存在的第一个元素
cout<<test.back()<<endl;//显示存在的最后一个元素
int* p = test.data();//取到了一个指向顺序表的一个指针
cout<<test.front()<<endl;//显示存在的第一个元素

//修改动作函数
test.assign(arr,arr+3);//assign替换函数可以替换一个对象的区间或者一个同类型的数组
test.push_back(4);//尾插,并没有头插
test.pop_back();//尾删                                                                                                                                        
test.insert(it,5);//插入指定位置
test.erase(it);//删除指定位置
test.swap(test1);//交换函数,将两个对象进行交换
test.clear();//清空整个顺序表
vector<int>::iterator it2=test.emplace(it,5);//类似于insert但是会返回新插入元的迭代器
test.emplace_back(10);//类似于尾插

原创转载请注明出处

### Vector 基本操作与使用方法 `vector` 是一种动态数组容器,广泛用于 C++ 编程语言中。它支持随机访问、自动扩容,并提供了丰富的成员函数来管理元素。以下是一些 `vector` 的基本操作和使用方法。 #### 创建和初始化 vector - `vector<T> v;`:创建一个空的 `vector` 容器。 - `vector<T> v(n);`:创建一个包含 `n` 个默认构造元素的 `vector`。 - `vector<T> v(n, value);`:创建一个包含 `n` 个元素的 `vector`,每个元素的值为 `value`。 - `vector<T> v(other_vector);`:通过复制另一个 `vector` 来初始化当前 `vector`。 - `vector<T> v(begin, end);`:通过迭代器范围 `[begin, end)` 初始化 `vector` [^3]。 #### 向 vector 添加元素 - `v.push_back(value);`:在 `vector` 的末尾添加一个元素。 - `v.insert(position, value);`:在指定位置插入一个元素。 #### 删除 vector 中的元素 - `v.pop_back();`:删除 `vector` 末尾的元素。 - `v.erase(position);`:删除指定位置的元素。 - `v.erase(start, end);`:删除指定范围内的元素。 #### 访问 vector 元素 - `v[i];` 或 `v.at(i);`:访问索引为 `i` 的元素。注意,`at()` 方法会在越界时抛出异常。 - `v.front();`:返回第一个元素。 - `v.back();`:返回最后一个元素。 #### 遍历 vector - 可以使用正向迭代器: ```cpp for (auto it = v.begin(); it != v.end(); ++it) { std::cout << *it << " "; } ``` - 也可以使用反向迭代器: ```cpp for (auto it = v.rbegin(); it != v.rend(); ++it) { std::cout << *it << " "; } ``` 这段代码展示了如何使用 `rbegin()` 和 `rend()` 成员函数进行反向遍历 [^1]。 #### 修改 vector 容量 - `v.size();`:返回当前 `vector` 中的元素数量。 - `v.capacity();`:返回 `vector` 当前分配的存储容量。 - `v.resize(new_size);`:调整 `vector` 的大小到 `new_size`。 - `v.reserve(new_capacity);`:预分配至少 `new_capacity` 大小的存储空间。 - `v.clear();`:清空所有元素。 #### 判断 vector 是否为空 - `v.empty();`:如果 `vector` 为空,则返回 `true`。 #### 示例代码 下面是一个完整的示例,展示了一些常见的 `vector` 操作: ```cpp #include <iostream> #include <vector> int main() { // 创建并初始化 vector std::vector<int> numbers{10, 20, 30, 40, 50}; // 使用 rbegin() 和 rend() 进行反向遍历 std::cout << "Reverse traversal using rbegin() and rend(): "; for (auto it = numbers.rbegin(); it != numbers.rend(); ++it) { std::cout << *it << " "; } std::cout << std::endl; // 添加元素 numbers.push_back(60); // 插入元素 numbers.insert(numbers.begin() + 2, 25); // 删除元素 numbers.pop_back(); // 访问元素 std::cout << "First element: " << numbers.front() << std::endl; std::cout << "Last element: " << numbers.back() << std::endl; // 遍历 vector std::cout << "Elements after modifications: "; for (const auto& num : numbers) { std::cout << num << " "; } std::cout << std::endl; return 0; } ``` 这段代码演示了如何创建 `vector`、添加和删除元素、访问特定元素以及遍历 `vector`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值