我想创建一组数字范围:0, 1, 2, 3, 4, ... 以下代码无法编译:
std::set<int> s;
std::iota(s.begin(), s.end(), 0);
带有以下错误消息:
error C3892: '_First' : you cannot assign to a variable that is const
编译器是VC++2012。相同的代码适用于向量。我应该如何将它与一组一起使用?
更新
我现在可以看到我的代码毫无意义,因为没有指定设置大小。
以下是有关我的问题的更多详细信息。
我有一组包含 [0, N] 范围内的一些数字。在我的应用程序中,我需要多次计算此类集合的集合差异。N 是固定的。
假设N = 5
第一组是s1 = {0, 3, 4}
。我需要计算设置差异{0, 1, 2, 3, 4} \ {0, 3, 4} == {1, 2}
。这个操作应该经常针对不同的集合执行,所以我认为我可以创建一个包含所有数字的集合({0, 1, 2, 3, 4}
在这种情况下)并std::set_difference
用来计算这些差异。