C++ vector

xyzw·2024년 7월 21일
0

C++

목록 보기
4/9

헤더

#include <vector>

선언

// 1차원
vector<type> name;
    
// 2차원
vector<vector<type>> name;

초기화

직접 값 지정하여 초기화

vector<int> v = {1, 2, 3, 4};

동일한 값으로 초기화

n개의 원소를 모두 m으로 초기화

vector<int> v(n, m);

2차원 벡터 초기화

n✖️m 크기, 모두 0으로 초기화

vector<vector<int>> v(n, vector<int> (m,0));

원소에 접근

배열처럼

vector<int> v = {1, 2, 3};
cout << v[2];

at()

vector<int> v = {1, 2, 3};
cout << v.at(1);

입력

배열처럼

for (int i = 0; i < n; i++) {
    cin >> v[i];
}

push_back()

for (int i = 0; i < n; i++) {
    int x;
    cin >> x;
    v.push_back(x);
}

insert()

insert(iterator position, const value_type& val)
첫번째 인자로 삽입하고 싶은 위치의 iterator를 넣어주어야 함

for (int i = 0; i < n; i++) {
    int x;
    cin >> x;
    v.insert(v.begin()+i), x;
}

출력

int main()
{
	vector<int> v = {1, 2, 3, 4, 5};
	
    // 방법 1
    for (int i = 0 ; i < vec.size(); i++) {
    	cout << v[i] << endl;
    }
    
    // 방법 2
	for (auto& e : v) {
		cout << e << " ";
	}

	// 방법 3
	for (auto it = v.begin(); it != v.end(); it++) {
		cout << *it << " ";
	}
    
	return 0;
}

함수

front

첫번째 원소 참조

v.front() = 10;

back

마지막 원소 참조

v.back() = 10;

swap

두 벡터를 교환

vector<int> v1;
vector<int> v2;
...
v1.swap(v2);

find

  1. vector내에 해당 원소가 존재하는지 확인
find(v.begin(), v.end(), 찾을 대상)
  • 리턴 값이 v.end()인 경우: 해당 원소가 존재하지 않는 것
  • 리턴 값이 v.end()가 아닌 경우: 해당 원소가 존재하는 것
  1. vector내에서 해당 원소가 위치하는 인덱스 찾기
int idx = find(v.begin(), v.end(), 찾을 대상) - v.begin()

0개의 댓글