C++之vector的常见函数介绍

C++之vector的常见函数介绍

初始化

1)使用空的vector并逐个添加元素:

std::vector<int> v;  
v.push_back(1);  
v.push_back(2);  
v.push_back(3);

2)使用指定数量的默认元素初始化vector:

std::vector<int> v(10, 0); // 初始化为10个0

3)使用一个序列的迭代器范围初始化vector:

std::vector<int> v{1, 2, 3, 4, 5}; // 使用花括号 {} 初始化

4)使用另一个vector的副本初始化:

std::vector<int> v1{1, 2, 3, 4, 5};  
std::vector<int> v2(v1); // 使用另一个vector的副本初始化

5)使用C-style数组初始化:

int arr[] = {1, 2, 3, 4, 5};  
std::vector<int> v(arr, arr + sizeof(arr) / sizeof(int)); // 使用C-style数组初始化

成员函数

1)访问成员函数

front(): 返回向量中的第一个元素。
back(): 返回向量中的最后一个元素。
at(): 返回向量中特定位置的元素。如果索引越界,会抛出std::out_of_range异常。
data(): 返回指向向量底层数组的指针。

2)修改成员函数

push_back(const value_type& val): 在向量的末尾添加一个元素。
pop_back(): 从向量的末尾移除一个元素。
insert(const_iterator position, const value_type& val): 在指定位置插入一个元素。
erase(const_iterator position): 删除指定位置的元素。
erase(const_iterator first, const_iterator last): 删除一个范围内的元素。
resize(size_type n, const value_type& val): 改变向量的大小。如果新大小小于当前大小,则删除尾部的元素;如果新大小大于当前大小,则添加新元素。
clear(): 移除向量中的所有元素。

3)容量成员函数

empty(): 如果向量是空的,则返回true;否则返回false。
size(): 返回向量中的元素数量。
max_size(): 返回向量的最大可能大小。

4)迭代器成员函数

begin(): 返回指向向量第一个元素的迭代器。
end(): 返回指向向量末尾之后一个元素的迭代器。
rbegin(): 返回指向向量最后一个元素的迭代器的反向迭代器。
rend(): 返回指向向量开始之前一个元素的反向迭代器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
vector的erase函数可以用来删除vector中的元素。它有两种常见的用法。引用中的第一种写法是一种常见的使用方式。其作用是删除满足特定条件的元素。在这个例子中,使用erase函数删除了vector中不等于9999的元素。需要注意的是,erase函数会返回一个指向被删除元素之后位置的迭代器,因此在for循环中需要将迭代器减一,以便正确地遍历vector中的元素。 引用中的第二种写法是对第一种写法的修正。在使用erase函数删除元素后,迭代器已经指向了下一个元素,因此不需要再手动将迭代器减一。这是一种更简洁的写法。 引用中的第二种写法是使用find函数结合erase函数来删除vector中重复的元素。在这个例子中,使用find函数找到vector中第一个与当前元素相等的位置,并判断是否与当前迭代器相等。如果相等,则说明当前元素是第一次出现,将其加入到新的vector中,否则忽略该元素。最后返回新的vector,即为没有重复元素的vector。 综上所述,vector的erase函数可以根据需要删除vector中的元素,可以使用迭代器配合erase函数来实现对vector的操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [C++ vector容器中用erase函数和迭代器删除重复元素问题分析](https://blog.csdn.net/m0_51955470/article/details/122047446)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [【C++vector中erase用法](https://blog.csdn.net/Vcrossover/article/details/106243627)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

付宇利

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值