天天看点

c++ 向量的值逆序输出_C++中vector的常用方法

前言

在C++中,vector是一个商业转载请联系作者获得授权,非商业转载请注明出处。十分有用的容器。它能像容器一样存放各种类型的对象,简单来说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。

相较链表而言,vector中提供了大量的方法供直接使用,降低了代码复杂度,也提高了易读性。

注意:vector相较于链表,实现插入和删除操作时效率较低,当动态添加的数据超过系统所分配的默认内存大小时,要进行整体的重新分配、拷贝和释放。

实例

基本操作

1.头文件

#include

2.创建vector对象

vector test;

3.尾部插入

int a = 0;

test.push_back(a);

4.使用下标访问元素

test[0] = 1;

5.插入元素

test.insert(test.begin()+i, a); //在第i+1个元素前插入a

6.删除元素

test.erase(test.begin()+3); //删除第3个元素

7.vect商业转载请联系作者获得授权,非商业转载请注明出处。or向量大小

test.size();

8.清空

test.clear();

began(),end() 和 front(),back()的差别

begin():返回当前vector容器内起始元素

end():返回当前vector容器内末尾元素

front():返回当前vector容器中起始元素的引用

back():返回当前vector容器中末尾元素的引用

e.g:

#include

#include

using namespace std;

int main()

{

vector test;

vector::iterator i1;

vector::iterator i2;

test.push_back(1000);

test.push_back(1001);

test.push_back(1010);

test.push_back(1011);

cout << "front()=" << test.front() << endl;

cout << "back()=" << test.back() << endl;

i1 = test.begin();

i2 = test.end()-1; //end()向的是最后一个元素的下一个位置,因此想要访问最后一个元素的正确操作为:end()-1

cout << *i1 << endl;

cout << *i2 << endl;

return 0;

}

输出结果:

front()=1000

back()=1011

1000

1011

常用函数

(1)reverse

需要头文件: #include

用法: reverse(test.begin(), test.end());将元素翻转,即逆序排列。

(2)sort

需要头文件: #include

用法 :sort(test.begin(), test.end());默认为升序排列,即从小到大。

e.g:

bool cmdPaixu(int a, int b)

{

return a>b;

}

sort(test.begin(), test.end(), cmdPaixu);

重写排序比较函数,实现降序排列。