gpt4 book ai didi

c++ - C++ 中的 set 和 map 有什么区别?

转载 作者:IT老高 更新时间:2023-10-28 12:46:22 39 4
gpt4 key购买 nike

有两种方法可以在 C++ STL 中轻松创建键值属性:映射和对集。例如,我可能有

map<key_class,value_class>

set<pair<key_class,value_class> >

在算法复杂度和编码风格方面,这些用法有什么区别?

最佳答案

它们在语义上是不同的。考虑:

#include <set>
#include <map>
#include <utility>
#include <iostream>

using namespace std;

int main() {
pair<int, int> p1(1, 1);
pair<int, int> p2(1, 2);
set< pair<int, int> > s;
s.insert(p1);
s.insert(p2);
map<int, int> m;
m.insert(p1);
m.insert(p2);
cout << "Set size = " << s.size() << endl;
cout << "Map size = " << m.size() << endl;
}

http://ideone.com/cZ8Vjr

输出:

Set size = 2
Map size = 1

关于c++ - C++ 中的 set<pair> 和 map 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3248554/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com