首页 > TAG信息列表 > stdset

c – 为什么使用std :: less作为比较std :: map和std :: set中的键的默认函子?

我想知道为什么std :: map和std :: set使用std :: less作为比较键的默认函子.为什么不使用类似于strcmp的仿函数?就像是: template <typename T> struct compare { // Return less than 0 if lhs < rhs // Return 0 if lhs == rhs // Return greater than 0 if l

如何在C中找到两个std :: set的交集?

我一直试图在C中找到两个std :: set之间的交集,但我一直收到错误. 我为此创建了一个小样本测试 #include <iostream> #include <vector> #include <algorithm> #include <set> using namespace std; int main() { set<int> s1; set<int> s2; s1.insert(1); s1.inser

c – 如果我的钥匙是我价值的一部分,我应该使用地图还是套装?

在C中,我有一个按名称排序的类,它是一个std :: string.我希望在std :: map或std :: set中每个唯一名称只有一个. 我可以使用std :: set,因为运算符<将按名称命令我的实例,但是,我需要按名称查找实例.使用键是名称的映射是直截了当的,但是,我也可以使用一个集合并构造一个我的类的虚

c – 如何有效地将一系列连续的整数插入到std :: set中?

在C中,我有一个std :: set,我想插入一系列连续的整数.我怎样才能有效地做到这一点,希望在O(n)时间内,n是范围的长度? 我想我会使用std :: insert的inputIterator版本,但是我不清楚如何构建输入迭代器. std::set<int> mySet; // Insert [34 - 75): mySet.insert(inputIteratorTo34,

c – 将std :: sets合并到std :: vector中

考虑以下. 我有两个std :: sets,并希望按排序顺序将它们合并到std :: vector中. 哪种方法最有效? 我做了类似的事情,但我认为必须有更好的方法. std::set<int> S1; std::set<int> S2; // .... // Initialization of sets // .... std::vector V; std::set<int>::iterator iter;

c – 如何在字符串中获取std ::字符集作为字符串?

我有一个std :: string.我想要一组唯一的字符,每个字符表示为std :: string. 我可以很容易地得到这组字符: std::string some_string = ... std::set<char> char_set(some_string.begin(), some_string.end()); 我可以将它们转换为这样的字符串: std::set<std::string> string_set