问题标签 [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.
c++ - 在中间访问 std::list
我有一个愚蠢的问题。我总是读到 C++std::list
容器在开头、结尾和中间插入元素的时间是固定的:在 a 中间直接插入元素的正确方法是std::list
什么?也许是这个?
当我们说“在中间插入”时,我们真的意味着我们节省了从列表的开头到所需点的线性时间(一个一个地遍历其间的所有链接元素)吗?
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 时,只是坐在那里没有响应。有任何想法吗?
c++ - 擦除 en 元素(双 for 循环)后如何正确指向 std::list?
我想从中删除一个元素std::list
,然后指向这个列表但是当我这样做时
我得到了未处理的异常:iterator is unincrementable
c++ - 创建模板化结构的 std::list (C++)
我有一个定义如下的结构:
我想创建一个 std::list 使用不同类型的各种数据结构,例如:
我只是不确定是否可以声明一个接受这两个结构的 std::list 。是否可以创建一个 std::list ?作为一种解决方法,我认为我可以将我的结构变成一个通用链表,但如果可能的话,我真的很想使用 std 库。
c++ - 遍历 std:list
这是我的代码:
我想要做的是访问列表中包含的每个 wstring 并调用它的 size() 成员函数。但是,itr 指出的似乎不是迭代的 wstring 元素,我收到错误(错误 C2039:'size':不是 'std::_List_iterator<_Mylist>' 的成员)
如果您想知道 kb 是什么,它是一个指向结构的指针,std::list<std::wstring> titles;
它是它的成员之一。
有想法该怎么解决这个吗?
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% 的机会重现它(虽然它当然也发生在其他情况下)。我避免发布整个代码,因为它有点大并且不可避免地会造成混乱。如果错误不在这里,我将编辑帖子并添加更多代码。
提前致谢
c++ - 是否需要在构造函数中初始化私有列表类成员?
我有一个头文件:
在我的 .cpp 文件中:
是否需要添加meetings()
到构造函数的初始化列表中?
我不确定用构造函数初始化对象的规则。即使未在构造函数中显式初始化,是否所有私有成员对象都已初始化?另外,我需要为列表创建一个析构函数来删除列表中的对象吗?
谢谢。
c++ - 如何通过 COM 发送列表
我可以通过 COM 发送对象列表吗?我有我的班级,也有这个班级的名单。我需要通过 COM 函数发送它。我可以这样做吗?如果是,那么如何?我需要序列化编组吗?
c++ - 比较两个 std::list 列表并获取不同的对象
是否有准备好的功能来获取两个std::list
列表的差异?
例如我有list1: obj1, obj2, obj3, obj4
和list2: obj2, obj3, obj4, obj5
。
函数结果应该是list1_unique: obj1
, list1_and_list2: obj2, obj3, obj4
, list2_unique: obj5
。
(编写自己的实现并不难,但我更喜欢标准函数)
c++ - std::list of pointers 在条目删除时变得无效
我有一个指针列表,这些指针引用了我的游戏中需要转弯的时间对象。此示例TimeObject*
在列表中有两个。此代码一直有效,直到从列表中删除一个项目:当发生这种情况时,另一个指向的地址将变为无效地址。发生这种情况时,两者都不会TimeObject
被删除;只有指针从列表中删除。这是什么原因造成的?
TimeUnlink()
中调用TimeObject::Tick()
。它不是静态的,但列表是。
我在 Linux 上使用 GCC 4.6.2。该程序没有线程。
错误输出: