- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Ubuntu。 g++ 版本 4.7.2。
任何人都可以帮我处理 gnu-extension 单列表吗?我在这里编译了这些东西,并在执行时得到了一个核心转储。
我调试了它,看到核心转储发生在第一行,它抛出了一个我无法解决的错误。有人可以帮我吗??
错误代码:
std::allocator<char>::allocator (this=0x7fffffffe4d0)
at /build/buildd/gcc-4.7-4.7.2/build/x86_64-linux-gnu/libstdc++-v3/include/bits/allocator.h:104
104 /build/buildd/gcc-4.7-4.7.2/build/x86_64-linux-gnu/libstdc++-v3/include/bits/allocator.h: No such file or directory.
这是我的测试代码:
#include <ext/slist>
#include <cstring>
#include <iostream>
int main(int argc, char * argv[])
{
__gnu_cxx::slist<char> li(&argv[1][0], &(argv[1][strlen(argv[1])]));
if(argc != 3)
return 1;
std::cout << "SList: ";
for(__gnu_cxx::slist<char>::iterator i = li.begin();
i != li.end();
++i)
std::cout << *i;
std::cout << std::endl;
li.remove(argv[2][0]);
for(__gnu_cxx::slist<char>::iterator i = li.begin();
i != li.end();
++i)
std::cout << *i;
std::cout << std::endl;
return 0;
}//main
最佳答案
我的猜测是您在运行它时没有提供任何命令行参数。它需要两个:要放入列表的字符序列和要删除的字符序列。
更新:如评论中所述,在使用 gdb
时将参数传递给您的程序, 你需要使用 --args
指示程序名称后面的参数应传递给程序的选项,而不是 gdb
本身:
gdb --args a.out xxyyxx x
^^^^^^
它从第一个参数初始化列表 argv[1]
之前 检查该参数是否存在;如果没有,那么您将得到未定义的行为。如果将支票移到 li
的声明上方,那么在这种情况下程序应该退出并返回代码 1。
然后调试器提示找不到源文件,因此无法向您显示在哪一行源代码中出错。
顺便说一下,C++ 标准库现在包含一个单向链表,std::forward_list
, 在 <forward_list>
中定义,您可以使用它来代替 GNU 的扩展。
关于c++ - gnu slist 执行错误 : lost of file . ../bits/allocator.h: 没有那个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13841152/
我使用的是 Windows 7 SP1 64 位。在 WinDBG 中,我打开一个可执行文件,然后输入命令 !slist $teb _EXCEPTION_REGISTRATION_RECORD 0 但
我正在使用 Boost 1.60 adjacency_list 并希望将 slistS 用于模板参数 OutEdgeList: using Graph = boost::adjacency_list;
我已经声明了以下 node继承自 boost::intrusive::slist_base_hook<> : class InputBufferSglNode : public boost::intr
我需要的只是一个动态增长的数组。我不需要随机访问,我总是插到最后,从头读到尾。 slist 似乎是首选,因为它提供了我所需要的。但是,我不知道使用 slist 而不是 vector 有什么好处。此外,
我是 STL 新手。我发现 slist(单链表)不是标准 C++ 标准的一部分。那么如何在我的程序中使用它呢? 我下载了 slist.h并粘贴在 C:\Program Files (x86)\Micr
当我尝试将我的 Win32 代码从 Microsoft 工具链移植到 MinGW 时,大多数代码都可以正常编译,但也有少数异常(exception)。 MinGW 中似乎缺少的一个特定 API 是 S
我一直在研究如何使用 sys/queue.h 中定义的宏来使用单链表,但我有一些疑问。目前我正在尝试使用相同的方法创建一个简单的列表。请注意,下面的程序是不完整的,我只输入了我认为相关的部分。 int
在两个boost::intrusive::slist>之间转移节点是否有效对象?类似下面的内容 auto one = boost::intrusive::slist>{}; auto two = bo
Windows 提供了一个无锁的单向链表,如本页所述: Win32 SList 我想知道是否有围绕此功能的现有良好 C++ 包装器。当我说好时,我的意思是它尽可能地导出通常的 STL 接口(inter
我正在使用 Ubuntu。 g++ 版本 4.7.2。 任何人都可以帮我处理 gnu-extension 单列表吗?我在这里编译了这些东西,并在执行时得到了一个核心转储。 我调试了它,看到核心转储发生
我正在尝试让一些旧的第三方软件在 OS X 10.9 上编译。通过调整 Makefile 中的设置,我设法摆脱了大多数编译问题,这些 Makefile 最初是为 gcc 编写的,大概是在 2005 年
对于一个不需要随机访问列表元素的简单链表,使用 std::list 代替 std 是否有任何显着优势(性能或其他方面): : vector ?如果需要向后遍历,在遍历其元素之前使用 std::slis
我是一名优秀的程序员,十分优秀!