问题标签 [stdlist]

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 投票
5 回答
6352 浏览

c++ - 在中间访问 std::list

我有一个愚蠢的问题。我总是读到 C++std::list容器在开头、结尾和中间插入元素的时间是固定的:在 a 中间直接插入元素的正确方法是std::list什么?也许是这个?

当我们说“在中间插入”时,我们真的意味着我们节省了从列表的开头到所需点的线性时间(一个一个地遍历其间的所有链接元素)吗?

0 投票
2 回答
316 浏览

c++ - std::list::sort 的使用挂起我的程序

我有一个 C++ 程序,它组织了一堆我想参加的大学课程。它通过从控制台获取输入(包括课程代码、描述等),按专业组织每门课程,然后将其全部输出到格式良好、易于阅读的 HTML 文件中。后来,我计划通过大量研究来缩小名单。

我将每门课程实现为一个对象,当我完成输入信息时,它会添加到一个列表中。当我完成所有信息后,list::sort应该按专业和代码对每门课程进行排序(例如,CSE 380 在 CSE 110 之后,并且都在 ECO 108 之前)。之后的格式化很容易。

要进行排序,我必须实现一个简单的函数,因为即使不这样做在技术上是有效的,我也会收到一个奇怪的错误,我猜是因为我的 Course 类没有“<”运算符。我的功能看起来像这样;

返回一个小字符串,其中getCode()包含三字母/数字格式的课程代码(如“AMS 401”)。显然,这是为了便于按字母顺序排列。

我这样称呼 sort 方法;

all_the_courses.sort(courseCompare);

清单在哪里all_the_courses

但是,每当我使用 std::list 时,程序就会停止。不会崩溃,没有输出,当我输入任何内容并按 Enter 时,只是坐在那里没有响应。有任何想法吗?

0 投票
2 回答
179 浏览

c++ - 擦除 en 元素(双 for 循环)后如何正确指向 std::list?

我想从中删除一个元素std::list,然后指向这个列表但是当我这样做时

我得到了未处理的异常:iterator is unincrementable

0 投票
3 回答
592 浏览

c++ - 创建模板化结构的 std::list (C++)

我有一个定义如下的结构:

我想创建一个 std::list 使用不同类型的各种数据结构,例如:

我只是不确定是否可以声明一个接受这两个结构的 std::list 。是否可以创建一个 std::list ?作为一种解决方法,我认为我可以将我的结构变成一个通用链表,但如果可能的话,我真的很想使用 std 库。

0 投票
2 回答
1891 浏览

c++ - 遍历 std:list

这是我的代码:

我想要做的是访问列表中包含的每个 wstring 并调用它的 size() 成员函数。但是,itr 指出的似乎不是迭代的 wstring 元素,我收到错误(错误 C2039:'size':不是 'std::_List_iterator<_Mylist>' 的成员)

如果您想知道 kb 是什么,它是一个指向结构的指针,std::list<std::wstring> titles;它是它的成员之一。

有想法该怎么解决这个吗?

0 投票
2 回答
1592 浏览

c++ - 调试断言失败:std::vector 下标超出范围

我正在尝试解决这个问题,似乎我正在访问超出范围的索引,但是 VS 无法在错误发生的地方停止,这让我对造成这种情况的原因感到困惑。

错误:

调试断言失败!程序:.... 文件:c:\program files\microsoft visual studio 10.0\vc\include\vector 行:1440 表达式:字符串下标超出范围

该程序的作用:

有两个线程:

线程 1:

第一个线程使用 查找(除其他外)当前窗口中的更改GetForegroundWindow(),检查不是在循环上发生,而是在WH_MOUSE_LL触发事件时发生。数据被分成固定大小的结构,以便可以通过 tcp 发送到服务器。第一个线程将数据(窗口标题)记录到std::list当前结构中。

线程 2:

调用第二个线程查找尚未发送的结构,并将它们的内容放入char缓冲区,以便可以通过 tcp 发送它们。虽然我不知道错误的确切位置,但从错误的类型来看,它与字符串或列表有关,这是我整个应用程序中使用列表/字符串的唯一代码(其余是常规数组)。还注释代码注释中提到的 if 块可以阻止错误的发生。

我对线程同步的尝试: 有一个指向创建的第一个数据块的指针(db_main)指向当前数据块的指针(db_cur)

细节:

现在有些事情让我相信错误不存在,因为子字符串错误非常罕见。当按下 Mouse_Down+Wnd+Tab 滚动窗口并按住它一段时间时,我只能以 100% 的机会重现它(虽然它当然也发生在其他情况下)。我避免发布整个代码,因为它有点大并且不可避免地会造成混乱。如果错误不在这里,我将编辑帖子并添加更多代码。

提前致谢

0 投票
4 回答
1558 浏览

c++ - 是否需要在构造函数中初始化私有列表类成员?

我有一个头文件:

在我的 .cpp 文件中:

是否需要添加meetings()到构造函数的初始化列表中?

我不确定用构造函数初始化对象的规则。即使未在构造函数中显式初始化,是否所有私有成员对象都已初始化?另外,我需要为列表创建一个析构函数来删除列表中的对象吗?

谢谢。

0 投票
3 回答
95 浏览

c++ - 如何通过 COM 发送列表

我可以通过 COM 发送对象列表吗?我有我的班级,也有这个班级的名单。我需要通过 COM 函数发送它。我可以这样做吗?如果是,那么如何?我需要序列化编组吗?

0 投票
1 回答
3384 浏览

c++ - 比较两个 std::list 列表并获取不同的对象

是否有准备好的功能来获取两个std::list列表的差异?

例如我有list1: obj1, obj2, obj3, obj4list2: obj2, obj3, obj4, obj5

函数结果应该是list1_unique: obj1, list1_and_list2: obj2, obj3, obj4, list2_unique: obj5

(编写自己的实现并不难,但我更喜欢标准函数)

0 投票
4 回答
347 浏览

c++ - std::list of pointers 在条目删除时变得无效

我有一个指针列表,这些指针引用了我的游戏中需要转弯的时间对象。此示例TimeObject*在列表中有两个。此代码一直有效,直到从列表中删除一个项目:当发生这种情况时,另一个指向的地址将变为无效地址。发生这种情况时,两者都不会TimeObject被删除;只有指针从列表中删除。这是什么原因造成的?

TimeUnlink()中调用TimeObject::Tick()。它不是静态的,但列表是。

我在 Linux 上使用 GCC 4.6.2。该程序没有线程。

错误输出: