C++ STL 中的 Set vs Map
Set 是一个抽象数据类型,每个元素都必须唯一,因为元素的值标识了该元素。元素的值一旦添加到 set 中就无法修改,但可以删除该元素并添加其修改后的值。
Map 是一个关联容器,按映射方式存储元素。每个元素都具有一个键值和一个映射值。没有两个映射值可以具有相同的键值。
因此,从上面可以清楚地看出,set 仅包含键,map 则包含带有键的值,两者都应具有唯一且经过排序的值。
对于无序且未排序的元素,有无序_set/无序_map、多重set/多重map。
示例代码
#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]
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP