[C++] vector
2024. 9. 28. 18:05ㆍ🧑🏻💻/C & C++
c++17을 기준으로 사용합니다.
아래 레퍼런스를 참고하였습니다.
C++ | Clang++ 10.0 (C++17) | clang++ -std=c++17 -O2 -Wno-unused-result -o FILENAME |
- 선언 및 초기화
- 요소 삽입
- 요소 삭제
- 사이즈 변경
- 가장 큰 수
- 가장 큰 수의 인덱스
- 가장 작은 수
- 가장 작은 수의 인덱스
- reverse
- sort(asc, desc)
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
int output(vector<int> &v, string str) {
cout << str << "\n";
for (int i : v) cout << i << " ";
cout << "\n==============================\n";
}
int main() {
vector<int> v(5, 5);
vector<int> v2 = {42, 55, 77};
// vector 선언 및 초기화
v.swap(v2);
// v와 v2의 원소와 capacity 전부 swap
auto pos = v.begin();
pos = v.insert(pos, 1, 3);
// 1번째 위치에 3의 값을 삽입. 리턴값으로 삽입한 곳의 iterator 반환. O(n)
output(v, "현재 vector : ");
v.erase(pos);
// iter가 가리키는 원소를 제거. 1번째 위치에 3의 값을 삭제.
v.push_back(1);
v.push_back(5);
v.push_back(7);
// 요소 맨끝에 삽입
v.resize(8);
v[6] = 33;
v[7] = 22;
// vector 사이즈 변경
output(v, "현재 vector : ");
cout << "원소의 수 : " << v.size() << "\n";
cout << "할당 공간 크기 : " << v.capacity() << "\n";
cout << "맨 앞 수 : " << v.front() << "\n";
v.pop_back(); // 마지막 원소 제거
cout << "맨 뒷 수 : " << v.back() << "\n";
int max = *max_element(v.begin(), v.end());
cout << "가장 큰 수 : " << max << "\n";
int max_index = max_element(v.begin(), v.end()) - v.begin();
cout << "가장 큰 수의 인덱스 : " << max_index;
cout << "\n==============================\n";
int min = *min_element(v.begin(), v.end());
cout << "가장 작은 수 : " << min << "\n";
int min_index = min_element(v.begin(), v.end()) - v.begin();
cout << "가장 작은 수의 인덱스 : " << min_index;
cout << "\n================================\n";
reverse(v.begin(), v.begin() + 4);
output(v, "1 ~ 4번 째 원소에 대해서만 reverse");
reverse(v.begin(), v.end());
output(v, "전체 reverse");
sort(v.begin(), v.end(), greater<int>());
output(v, "DESC 내림차순");
sort(v.begin(), v.end());
output(v, "ASC 오름차순");
sort(v.rbegin(), v.rend());
output(v, "DESC 간단 내림차순");
return 0;
}
'🧑🏻💻 > C & C++' 카테고리의 다른 글
[C++] map / multimap / unordered_map / unordered_multimap (0) | 2024.11.22 |
---|---|
[C++] 순열, 조합 (0) | 2024.10.05 |
[C++] Permutation, Combination (0) | 2024.08.10 |
[C] const (0) | 2022.09.15 |
[C] strjoin / strjoin.c / strjoin in c (0) | 2022.09.14 |