gpt4 book ai didi

visual-studio-2010 - 自定义操作系统上的 STL - std::list 有效,但 std::vector 无效

转载 作者:行者123 更新时间:2023-12-04 22:25:26 25 4
gpt4 key购买 nike

我只是在 Visual Studio 2010 中使用 grub-bootable C++ 内核。

我已经到了写新和删除的地步,动态分配的数组之类的东西可以工作。例如,我可以使用 STL 列表。在我写了一个 memcpy 例程之后,我什至可以对它们进行排序。问题是当我使用 std::vector 类型时。简单地构建向量将内核发送到 la la land。

显然我错过了某种函数实现,但我通过 STL 寻找它并空手而归。它在 push_back 失败:

vector<int> v;
v.push_back(1);

并消失在以太中。

关于我缺少什么的任何猜测?

编辑是的,它是 int 的向量。对困惑感到抱歉。不仅如此,它不是失败的构造函数,而是对 push_back 的调用。

最佳答案

根据我们上面的讨论,创建一个

std::vector<mySimpleStruct> v;

代替
std::vector<int> v;

似乎工作正常。这一定意味着问题出在标准模板库中 std::vector 某些函数的特化中。我假设您已经熟悉模板特化,但如果您不熟悉:

http://www.parashift.com/c++-faq-lite/templates.html#faq-35.7

另外,一旦你弄清楚真正的问题在哪里,你能回来在这里发布答案吗?你让我很好奇现在真正的问题在哪里,而且答案可能对其他试图构建自己的操作系统内核的人有所帮助。

关于visual-studio-2010 - 自定义操作系统上的 STL - std::list 有效,但 std::vector 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3508266/

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