Updated:

3 minute read

개요

  • 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