[C/C++] Vector STL

3528 ワード

Vector


:C++の標準テンプレートライブラリにあるコンテナ.これは、ユーザーがコンテナを簡単に使用できるclassです.Vectorは、要素を動的に追加し、自動的にサイズを大きくすることができます.効率に反して演算性能が低い.

Vectorの構成


front():最初の要素
back():最後の要素
begin():最初の場所
end():前の場所
size():要素数
Capacity():割り当てられたスペースサイズ
sizeとcapacityの違い
要素を追加するたびにvectorは新しいメモリ領域を割り当てます.容量が不足している場合は、容量/2を増やします.

Vectorの使い方


1.宣言

#include <vector>
//including vector headerfile 

vector<int> v;							
//int형 벡터 생성

vector<int> v={1, 2, 3};				
//int형 벡터 생성 + 1, 2, 3으로 초기화

vector<int> v[10];						
//int형 벡터 배열(크기:10) 생성

vector<int> v[] = {{ 1, 2}, {3, 4}};	
//int형 벡터 생성 (행은 가변이지만 열은 고정)

vector<vector<int>> v;
//2차원 벡터 생성(행과 열 모두 가변)

vector<int> v(5);
//5개 원소를 0으로 초기화

vector<int> v(5, 3);
// 원소를 3으로 초기화

vector<int> v2(v);
//벡터 v를 복사해서 벡터 v2 생성 (복사 생성자)

2.Vectorへの値の追加


push_back(value)
v.insert(index, value)
v.push_back(10); //마지막 위치에 숫자 10 추가
vector<int>::iterator it = v.begin();
it = v.insert(it, 2);			//맨앞에 2 삽입
it = v.insert(it, 2, 3);		//맨앞에서 3을 2개 삽입
it = v.insert(it+2, 2, 4);		//앞에서 2번째부터 4를 2개 삽입
ベクトルを使用する反復器とは?
リピーター
:コンテナ内のすべての要素を全体的に参照するためのポインタに似たオブジェクトです.アルゴリズムによって異なる方法が使用されるため、重複文字も複数存在する.上記の例ではvectorというクラスにiteratorというタイプが定義されています.この場合、itはv.begin()を指すポインタであると簡単に理解できる.

3.Vectorから値を削除


v.pop back():ベクトルの末尾の値を削除します.
v.eraser(index,index):vectorのindexにある値を削除します.削除したら、後ろから1つ前に引いてください.
v.clear():すべての値を削除します.

4.Vectorのサイズ

v.size();			//vector의 원소 갯수
v.capacity();		//vector의 물리적 크기(메모리 할당량)

5.反復器を用いたVector出力

vector<int> v1;
for(int i=1; i<=5; i++) {
	v1.push_back(i);
}

for(auto i=v1.begin(); i!=v1.end(); ++i){
	cout << *i << " ";