Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++ STL에서 설정 대 매핑

<시간/>

집합은 요소의 값이 요소를 식별하기 때문에 각 요소가 고유해야 하는 추상 데이터 유형입니다. 요소의 값은 세트에 추가되면 수정할 수 없지만 해당 요소의 수정된 값을 제거 및 추가하는 것은 가능합니다.

Map은 매핑된 방식으로 요소를 저장하는 연관 컨테이너입니다. 각 요소에는 키 값과 매핑된 값이 있습니다. 매핑된 두 값은 동일한 키 값을 가질 수 없습니다.

따라서 위에서 보면 set에는 유일한 키가 포함되고 map에는 키가 있는 값이 포함되며 둘 다 고유하고 정렬된 값을 가져야 합니다.

정렬되지 않은 요소와 정렬되지 않은 요소에는 unordered_set/unordered_map, multiset/multimap이 있습니다.

예시 코드

#include<iostream>
#include <bits/stdc++.h>
using namespace std;
int main() {
   set<int> s; //initializing a empty set container
   set<int>::iterator it; //Initializing a set container as iterator
   s.insert(7); //inserting elements in the set container s
   s.insert(6);
   s.insert(1);
   s.insert(4);
   s.insert(2);
   s.insert(9);
   s.insert(10);
   cout << "Elements are in set:\n";
   for ( auto it : s)
      cout << it << " "; //printing elements of the set container
   return 0;
}

출력

1 2 4 6 7 9 10

예시 코드

#include<iostream>
#include <bits/stdc++.h>
using namespace std;

int main()
{
   map<char, int> m;                     //initialize a map
   map<char, int>::iterator iter;       //initializing a map as iterator
   m.insert (pair<char, int>('a', 10)); //inserting values to the map
   m.insert (pair<char, int>('b', 20));

   cout << "Elements in map:\n";
   for (iter=m.begin();iter!=m.end();iter++)
   cout << "[ " << iter->first << ", "<< iter->second << "]\n"; //printing the values of the map
   return 0;
}

출력

Elements in map: 
[ a, 10] 
[ b, 20]