C++中vector容器的常用操作方法
1.容器的创建,删除
#include "stdafx.h" #include <iostream> #include <vector> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { vector<int> v1; vector<int>::iterator Iter; //iterator为迭代器,值为*Iter v1.push_back(10); //向容器中中添加数据 v1.push_back(20); v1.push_back(30); v1.push_back(40); v1.push_back(50); v1.push_back(60); //v1.back()=3; //将容器中的最后一个元素赋值为3 cout<<v1.back(); //输出容器的最后一个元素值 //输出容器里的所以元素 cout << "v1 =" ; for ( Iter = v1.begin( ) ; Iter != v1.end( ) ; Iter++ ) // v1.begin( )为第一个元素,v1.back()为最后一个元素,v1.end( )为容器的结束标志 cout << " " << *Iter; cout << endl; // 输出:10 20 30 40 50 60 // 下标:0 1 2 3 4 5 v1.erase( v1.begin( ) ); //删除v1容器中的第一个元素,则vi容器的第一个元素变为20 cout << "v1 ="; for ( Iter = v1.begin( ) ; Iter != v1.end( ) ; Iter++ ) cout << " " << *Iter; cout << endl; //输出:20 30 40 50 60 //下标:0 1 2 3 4 v1.erase( v1.begin( ) + 1, v1.begin( ) + 4 ); //删除v1容器中下标为1到3的元素,v1.begin()下标为0 // 30 60 cout << "v1 ="; for ( Iter = v1.begin( ) ; Iter != v1.end( ) ; Iter++ ) cout << " " << *Iter; cout << endl; //输出:20 60 system("PAUSE"); //vs运行必加,意为在点击后显示运行结果 return 0; }
3 两vector 容易赋值时,不能通过=来赋值
而应使用遍历 或assign函数的方式来赋值
vector<int> v1,v2; //将v1容器里的值赋值到v2中 //方法一: v2.assign(v1.begin(),v1.end()); //方法二 for(int i=0;i<v1.size();i++) { int temp=v1.at(i); v2.push_back(temp); }
4 在vector中查找
#include<vector> #include<algorithm> //在VECTOR中查找 using namespace std; vector<int> L; L.push_back( 1 ); L.push_back( 2 ); L.push_back( 3 ); L.push_back( 4 ); L.push_back( 5 ); vector<int>::iterator result = find( L.begin( ), L.end( ), 3 ); //查找3 if ( result == L.end( ) ) //没找到 cout << "No" << endl; else //找到 cout << "Yes" << endl;