问题标签 [stdset]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
10 回答
58050 浏览

c++ - c++ STL设置差异

C++ STL 集合数据结构有集合差分运算符吗?

0 投票
3 回答
4586 浏览

c++ - C++ std::set 比较器

这是代码:

这就是问题所在:

调试断言失败!
文件:..\VC\include\xtree
行:638

表达式:无效的运算符<

之后,我可以选择“中止”、“重试”或“忽略”。如果我选择忽略更多(相同的)出现,但它最终会完美运行。

当我将带有 ->Amount == 的 Reputation 插入到之前插入的 Reputation * 之一时,似乎会出现问题,但我不确定最后一个。

任何帮助将不胜感激

编辑:我希望它们的顺序首先是按升序排列的正序,然后是按降序排列的负序。示例:1 5 10 11 11 20 50 -1 -5 -50

0 投票
6 回答
42794 浏览

c++ - 如何在 std::set 中找到最大的 int?

我有一个std::set<int>,找到这个集合中最大的 int 的正确方法是什么?

0 投票
6 回答
37575 浏览

c++ - C++ std::set 线程安全吗?

我对 std::set 的线程安全有疑问。

据我所知,我可以迭代一个集合并添加/删除成员,这不会使迭代器无效。

但考虑以下情况:

  • 线程“A”迭代一组 shared_ptr<Type>
  • 线程“B”偶尔会向这个集合添加项目。

我在程序运行时遇到了段错误,我不确定为什么会发生这种情况。缺乏线程安全是原因吗?

0 投票
4 回答
1877 浏览

c++ - std::set::erase 上的访问冲突读取位置

我最近在我的应用程序中发现了以下崩溃:

m_players声明为:

Visual Studio 显示为“0xC0000005:访问冲突写入位置 0x0000000000000024”。

编译器:Visual Studio 2008。

拆卸:000000014007AA3B mov rcx,qword ptr [this](崩溃)

所以我假设我们因为糟糕的“this”而死去,因为它是在那个函数中第一次访问这个。但是因为我看了本地人/汽车,这似乎不是一个坏指针。

很高兴得到一个提示。

0 投票
6 回答
66270 浏览

c++ - 如何在 C++ 中获取集合中的元素?

我对如何获取集合中的元素感到困惑。我想我必须使用迭代器,但我该如何逐步完成它?

0 投票
4 回答
5389 浏览

c++ - 如何从集合中删除所有偶数在 C++ 中

我是 C++ 新手。我想知道有经验的编码员是如何做到这一点的。

我有的:

当然,它不起作用。因为它在擦除后递增。这是否意味着每次我从集合中删除元素后,Itr 都必须指向集合的开头?

0 投票
1 回答
261 浏览

c++ - std::set.find() 返回的迭代器能存活多久?

我需要通过保存 set.find() 返回的迭代器来跟踪 std::set 元素。

我的问题是插入和删除其他元素是否会使获得的迭代器无效?从我做的一个简单测试中我可以看出它不是,但我想确保这个功能是设计使然。

0 投票
1 回答
848 浏览

c++ - 在 C++ 中使用集合

如何在 C++ 中定义集合并将值插入其中?

0 投票
4 回答
3777 浏览

c++ - 限制 std::set 的大小

我有一个关于 std::set 容器的简短问题。现在我正在使用推回功能喂我的套装。当然,每个 push_back 的集合都会变得越来越大。我只对最新的30个左右的元素感兴趣...较旧的元素可以删除。所以我的想法是将集合的大小限制为 30 个左右的元素,并通过这样做摆脱不需要的旧元素。但是,该集合默认不支持限制。我可以不时检查集合的大小并手动删除多余的元素。有没有更聪明的方法?

问候隆皮