C++ vector 相关函数简介

简介: C++ vector 相关函数简介

vector函数简介

函数: #include <vector>


size()

容器中元素个数


max_size()

最大可以存储的元素个数


capacity()

实际存储空间的大小,大于或等于size()


empty()

容器是否为空,size()==0为true


reserve()

重新分配空间的大小


resize()

重新分配容器的元素个数


front()

第一个元素的值


back()

最后一个元素的值


at()

某个位置的元素值,并检查位置是否越界


begin()

正序第一个元素的位置


end()

正序最后一个元素的下一个位置


rbegin()

反序的第一个元素的位置,也是正序最后一个元素


rend()

反序的最后一个元素下一个位置


push_back()

在末尾追加一个元素,size()增1


assign()

重新分配元素,将会丢弃原有全部元素


pop_back()

删除最后一个元素,size()减1


clear()

清空所有元素


insert()

在指定位置插入一个或多个元素


erase()

删除指定位置的一个或连续几个元素


shrink_to_fit()

削减多占用的空间,使得capacity()=size()


swap()

交换两个容器的全部元素


算法: #include <algorithm>

find()

查找指定的两个位置间是否存在某个值,与string::find()相似


reverse()

把全部元素倒序存放 (长得有点像reverse|reserve)


copy()

复制两个位置间的元素到另一个容器的指定位置并覆盖它的元素


remove()

移除等于某个值的所有元素,但并未删除移掉元素的空间

【比如】{1,0,2,3,0,0,4,0,5}去掉0后剩下的{1,2,3,4,5}去覆盖掉容器最前面的元素{1,2,3,4,5,0,4,0,5},原有顺序并没改变,没被覆盖掉的元素仍保留在原位置处。


sort()

默认升序排序,降序要重写排序比较函数

【其实】不用写函数那么麻烦,先排序再倒序不就是降序排列了,见如下测试代码:


//测试代码:
vector <int> vect(10);
for_each(vect.begin(),vect.end(),[](int &i)->void{i=rand()%10;});
for (auto v:vect) cout<<v<<" "; cout<<endl;
sort(vect.begin(),vect.end());
for (auto v:vect) cout<<v<<" "; cout<<endl;
reverse(vect.begin(),vect.end());
for (auto v:vect) cout<<v<<" "; cout<<endl; 
//运行结果:
-----------------------------------
1 7 4 0 9 4 8 8 2 4
0 1 2 4 4 4 7 8 8 9
9 8 8 7 4 4 4 2 1 0
-----------------------------------



目录
相关文章
|
2月前
|
程序员 C++ 容器
在 C++中,realloc 函数返回 NULL 时,需要手动释放原来的内存吗?
在 C++ 中,当 realloc 函数返回 NULL 时,表示内存重新分配失败,但原内存块仍然有效,因此需要手动释放原来的内存,以避免内存泄漏。
|
2月前
|
存储 C++ 索引
【C++打怪之路Lv9】-- vector
【C++打怪之路Lv9】-- vector
23 1
|
2月前
|
存储 前端开发 C++
C++ 多线程之带返回值的线程处理函数
这篇文章介绍了在C++中使用`async`函数、`packaged_task`和`promise`三种方法来创建带返回值的线程处理函数。
52 6
|
2月前
|
安全 测试技术 C++
【C++篇】从零实现 C++ Vector:深度剖析 STL 的核心机制与优化2
【C++篇】从零实现 C++ Vector:深度剖析 STL 的核心机制与优化
65 6
|
2月前
|
安全 测试技术 C++
【C++篇】从零实现 C++ Vector:深度剖析 STL 的核心机制与优化1
【C++篇】从零实现 C++ Vector:深度剖析 STL 的核心机制与优化
66 7
|
2月前
|
C++
C++ 多线程之线程管理函数
这篇文章介绍了C++中多线程编程的几个关键函数,包括获取线程ID的`get_id()`,延时函数`sleep_for()`,线程让步函数`yield()`,以及阻塞线程直到指定时间的`sleep_until()`。
25 0
C++ 多线程之线程管理函数
|
2月前
|
编译器 C++
【C++】—— vector模拟实现
【C++】—— vector模拟实现
|
2月前
|
算法 安全 Linux
【C++STL简介】——我与C++的不解之缘(八)
【C++STL简介】——我与C++的不解之缘(八)
|
2月前
|
编译器 C语言 C++
C++入门3——类与对象2-2(类的6个默认成员函数)
C++入门3——类与对象2-2(类的6个默认成员函数)
32 3
|
2月前
|
编译器 C语言 C++
详解C/C++动态内存函数(malloc、free、calloc、realloc)
详解C/C++动态内存函数(malloc、free、calloc、realloc)
211 1