vector容器一般被用作创建动态数组,动态数组就像Python中的list结构一样,可以比普通数组拥有更丰富操作方法,下面就为大家整理了一些最常用的操作:
1 获得容器最后一个元素
------ 使用 back或rbegin 取得
// back、rbegin 有常量和引用两种形式
std::vector<int> myVector;
myVector.back()=3;
std::vector<int>::reverse_iterator tailIter;
tailIter=myVector.rbegin();
*tailIter=3
2 删除某元素
需要删除某位置的元素,应使用iterator遍历, 不应使用at(i) 方式遍历,因为删除元素时,是根据iterator位置进行删除的。
删除元素时,返回值为:位于删除的元素之后的第一个的元素所在的位置
#include <vector>
#include <iostream>
int main( )
{
using namespace std;
vector <int> v1;
vector <int>::iterator Iter;
v1.push_back( 10 );
v1.push_back( 20 );
v1.push_back( 30 );
v1.push_back( 40 );
v1.push_back( 50 );
cout << "v1 =" ;
for ( Iter = v1.begin( ) ; Iter != v1.end( ) ; Iter++ )
cout << " " << *Iter;
cout << endl;
v1.erase( v1.begin( ) );
cout << "v1 =";
for ( Iter = v1.begin( ) ; Iter != v1.end( ) ; Iter++ )
cout << " " << *Iter;
cout << endl;
v1.erase( v1.begin( ) + 1, v1.begin( ) + 3 );
cout << "v1 =";
for ( Iter = v1.begin( ) ; Iter != v1.end( ) ; Iter++ )
cout << " " << *Iter;
cout << endl;
}
输出:
v1 = 10 20 30 40 50
v1 = 20 30 40 50
v1 = 20 50
3 两vector 容易赋值时,不能通过=来赋值
而应使用遍历 或assign函数的方式来赋值
//delNode.vectorNode 是与delPositionVector同类型容器
// vector 两容器不能直接赋值 可通过 遍历每个元素赋值,也可使用 assign赋值
VectorNode delNode;
delNode.numberOfFenkuai=nSelect;
Node nodeTemp;
错误赋值方式:
// 这是错误的赋值方式
delNode.vectorNode=delPositionVector ;
正确赋值方式一: 遍历
for (int i=0;i<delPositionVector.size();i++)
{
nodeTemp=delPositionVector.at(i);
delNode.vectorNode.push_back(nodeTemp);
}
正确赋值方式二: assign函数










