std::array와 std::vector 차이
2019. 10. 30. 10:06ㆍPL/C++
가장 큰 차이는 고정된 크기와 유동적인 크기에 있다. std::vector는 멤버함수로 resize를 가지고 있지만, std::array는 가지고 있지 않다. 즉 선언할 때 std::array는 반드시 크기를 명시해야지만 std::vector는 push_back 멤버함수로도 사이즈를 동적으로 늘릴 수 있다는 특징이 있다
단 std::array를 쓰는 이유는 기본 C에서 배열을 명시하는 것보다는 size, swap 등 다양한 함수와 연산자가 가능하기에 사용하는 것이다
#include <array>
#include <iostream>
using namespace std;
int main(void) {
array<int, 5> arr = { 1, 2, 3, 4, 5 };
for (int& u : arr) {
cout << u << ' ';
}
cout << '\n';
arr = { 10, 20, 30, };
for (int& u : arr) {
cout << u << ' ';
}
cout << '\n';
cout << arr.at(3) << '\n';
cout << arr.front() << '\n';
cout << arr.back() << '\n';
array<int, 5> tarr = { 6, 7, 8, 9, 10 };
arr.swap(tarr);
for (int& u : arr) {
cout << u << ' ';
}
cout << '\n';
return 0;
}
#include <vector>
#include <iostream>
using namespace std;
int main(void) {
vector<int> vect(5);
for (int i = 0; i < 5; i++) {
vect[i] = i + 1;
}
for (auto& u : vect) {
cout << u << ' ';
}
cout << '\n';
vect.resize(10);
for (int i = 0; i < 10; i++) {
vect[i] = i + 1;
}
for (auto& u : vect) {
cout << u << ' ';
}
cout << '\n';
return 0;
}
'PL > C++' 카테고리의 다른 글
malloc/free와 new/delete 차이 (0) | 2019.11.12 |
---|---|
cin으로 방어적 프로그래밍 (0) | 2019.10.31 |
디버깅으로 쓰이는 assert (0) | 2019.10.30 |
char *과 const char * (0) | 2019.10.25 |
constexpr (0) | 2019.10.23 |