1 기본 작업
(1) 헤더 파일 #include<벡터>.
(2) 벡터 객체 생성, vector
(3 ) 끝에 숫자를 삽입하세요: vec.push_back(a);
(4) 요소에 액세스하려면 첨자를 사용하세요. cout
(5) 반복자를 사용하여 요소에 액세스합니다.
vector<int>::iterator it;for(it=vec.begin();it!=vec.end();it++) cout<<*it<<endl;
(6) 요소 삽입: vec.insert(vec.begin()+i,a) at i+1 Insert 요소 앞의 a;
(7) 요소 삭제: vec.erase(vec.begin()+2) 세 번째 요소 삭제
vec.erase(vec.begin( ) +i,vec.end()+j); 간격 삭제 [i,j-1]; 간격은 0부터 시작합니다
(8) 벡터 크기: vec.size();
(9) Clear: vec.clear();
2
벡터의 요소는 int, double, string뿐만 아니라 구조체도 될 수 있지만 참고하세요: 구조체 전역적으로 정의해야 합니다. 그렇지 않으면 오류가 발생합니다. 다음은 짧은 프로그램 코드입니다.
#include<stdio.h> #include<algorithm> #include<vector> #include<iostream> using namespace std; typedef struct rect { int id; int length; int width; //对于向量元素是结构体的,可在结构体内部定义比较函数,下面按照id,length,width升序排序。 bool operator< (const rect &a) const { if(id!=a.id) return id<a.id; else { if(length!=a.length) return length<a.length; else return width<a.width; } } }Rect; int main() { vector<Rect> vec; Rect rect; rect.id=1; rect.length=2; rect.width=3; vec.push_back(rect); vector<Rect>::iterator it=vec.begin(); cout<<(*it).id<<' '<<(*it).length<<' '<<(*it).width<<endl; return 0; }
3 알고리즘
(1) 요소를 뒤집으려면 reverse를 사용합니다. 헤더 파일 필요 #include
reverse( vec.begin(),vec.end()); 요소 뒤집기(벡터에서 함수에 두 개의 반복자가 필요한 경우
는 일반적으로 후자를 포함하지 않습니다.)
( 2) 정렬을 사용하여 정렬: 헤더 파일 #include
sort(vec.begin(),vec.end()); , 작은 것부터 큰 것까지) . 다음과 같이 정렬 비교 함수를 다시 작성하여 내림차순으로 비교할 수 있습니다. 정렬 비교 함수 정의: bool Comp( const int &a,const int &b){
반환
a>b;
}
호출 시: sort(vec.begin(),vec.end(),Comp), 내림차순으로 정렬됩니다