gpt4 book ai didi

c++ - 如何获取 std::set 的第一个元素

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

我是你们,

我在我的软件中发现了一个奇怪的错误。

在我从 std::set 中删除元素的 while 循环中,我希望始终获取第一个元素,直到容器为空:

std::set< int*> nodes;
// Fill nodes
for (int i=0; i<10;i++)
nodes.insert(new int);
//
while (!nodes.empty())
{
int* pivot = (*nodes.begin());
// do some operation with pivot erasing some elements from nodes
}

我发现以这种方式实现第一个元素适用于 gcc 但不适用于 MSVC,它在我尝试取消引用 (*nodes.begin()) 迭代器时崩溃。

std::set 的两个实现是否表现不同?

我想要一个没有实现差异的数据结构,可以吗?

可能我必须为这种操作更改数据结构

最佳答案

您的代码在 VS2010 中运行良好,也许您应该更新您的 vcc。

关于c++ - 如何获取 std::set 的第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10351591/

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