gpt4 book ai didi

c++ - 为什么 set::iterator 不能作为 map 的 key?

转载 作者:太空宇宙 更新时间:2023-11-04 15:08:50 29 4
gpt4 key购买 nike

我有一段代码是这样的:

set<string>::iterator it1;
set<string>::iterator it2;
pair<set<string>::iterator,bool> ret;

set<string> s;
ret = s.insert("bbbb1");
it1 = ret.first;

ret = s.insert("bbbb2");
it2 = ret.first;

map<set<string>::iterator, set<string>::iterator> m;

m.insert(make_pair(it1,it2));

但是最后一行“m.insert(make_pair(it1,it2));”失败..

最佳答案

std::set迭代器不是随机访问迭代器,因此它们不小于可比性。

std::map 中用作键的类型必须能够使用 strict weak ordering 进行排序.默认情况下,std::map使用 <订购 key 。您可以通过在定义 std::map 的类型时提供比较器来更改此行为。 .您可能希望使用迭代器指向的对象执行一些关系比较。

关于c++ - 为什么 set<string>::iterator 不能作为 map 的 key?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7005435/

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