개요
- array
- vector
- list
- deque
- set
- unordered_set
- multiset
- map
- multimap
- unordered_map
예제
- 코드
-
#include <array>
#include <deque>
#include <iostream>
#include <list>
#include <map>
#include <set>
#include <string>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>
using namespace std;
class Test {
private:
int i;
public:
Test(int i) : i(i) {}
bool operator<(const Test& test) const { return this->i < test.i; }
friend ostream& operator<<(ostream& o, const Test& test);
};
ostream& operator<<(ostream& o, const Test& test) {
o << test.i;
return o;
}
int main() {
array<int, 3> arr = {1, 2, 3};
cout << arr[0] << endl;
cout << arr.at(1) << endl;
cout << arr.size() << endl;
for (const auto& iter : arr) {
cout << "array : " << iter << endl;
}
cout << "------" << endl;
vector<int> v;
v.clear();
v.push_back(1);
v.push_back(2);
v.push_back(4);
v.insert(v.begin() + 2, 3);
cout << v[0] << endl;
cout << v.at(0) << endl;
for (auto iter = v.begin(); iter != v.end(); ++iter) {
cout << "vector-1 : " << *iter << endl;
}
v.erase(v.end() - 1);
for (const auto& iter : v) {
cout << "vector-2 : " << iter << endl;
}
cout << "vector size : " << v.size() << endl;
cout << "------" << endl;
list<double> l;
l.clear();
l.push_back(1.1);
l.push_back(2.2);
for (const auto& iter : l) {
cout << "list : " << iter << endl;
}
cout << "------" << endl;
deque<char> d;
d.clear();
d.push_back('b');
d.push_front('a');
for (const auto& iter : d) {
cout << "deque : " << iter << endl;
}
cout << "------" << endl;
set<string> s1;
s1.clear();
s1.insert("ccc");
s1.insert("aaa");
s1.insert("bbb");
s1.insert("aaa");
for (const auto& iter : s1) {
cout << "set-1 : " << iter << endl;
}
if (s1.find("aaa") != s1.end()) {
cout << "exist" << endl;
}
set<Test> s2;
s2.clear();
s2.insert(Test(2));
s2.insert(Test(1));
s2.insert(Test(2));
for (const auto& iter : s2) {
cout << "set-2 : " << iter << endl;
}
cout << "------" << endl;
multiset<int> ms;
ms.clear();
ms.insert(1);
ms.insert(1);
ms.insert(2);
for (const auto& iter : ms) {
cout << "multiset : " << iter << endl;
}
cout << "------" << endl;
unordered_set<string> s3;
s3.clear();
s3.insert("ccc");
s3.insert("aaa");
s3.insert("bbb");
for (const auto& iter : s3) {
cout << "unordered_set : " << iter << endl;
}
cout << "------" << endl;
map<int, bool> m;
m.clear();
m.insert(make_pair(2, true));
m[0] = true;
m[0] = false;
m[1] = true;
for (const auto& iter : m) {
cout << "map : " << iter.first << ", " << iter.second << endl;
}
if (m.find(3) == m.end()) {
cout << "not exist" << endl;
}
cout << "------" << endl;
multimap<int, bool> mm;
mm.clear();
mm.insert(make_pair(0, true));
mm.insert(make_pair(0, false));
mm.insert(make_pair(2, true));
for (const auto& iter : mm) {
cout << "multimap-1 : " << iter.first << ", " << iter.second << endl;
}
auto er = mm.equal_range(0);
for (auto iter = er.first; iter != er.second; ++iter) {
cout << "multimap-2 : " << iter->first << ", " << iter->second << endl;
}
cout << "------" << endl;
unordered_map<int, bool> um;
um.clear();
um.insert(make_pair(2, true));
um[0] = false;
um[1] = true;
for (const auto& iter : um) {
cout << "unordered_map : " << iter.first << ", " << iter.second << endl;
}
return 0;
}
- 실행 결과
-
1
2
3
array : 1
array : 2
array : 3
------
1
1
vector-1 : 1
vector-1 : 2
vector-1 : 3
vector-1 : 4
vector-2 : 1
vector-2 : 2
vector-2 : 3
vector size : 3
------
list : 1.1
list : 2.2
------
deque : a
deque : b
------
set-1 : aaa
set-1 : bbb
set-1 : ccc
exist
set-2 : 1
set-2 : 2
------
multiset : 1
multiset : 1
multiset : 2
------
unordered_set : bbb
unordered_set : aaa
unordered_set : ccc
------
map : 0, 0
map : 1, 1
map : 2, 1
not exist
------
multimap-1 : 0, 1
multimap-1 : 0, 0
multimap-1 : 2, 1
multimap-2 : 0, 1
multimap-2 : 0, 0
------
unordered_map : 1, 1
unordered_map : 0, 0
unordered_map : 2, 1