问题标签 [stdvector]

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 投票
2 回答
648 浏览

c++ - 自定义向量 STL 容器中的 clear() 问题

按照Accelerated C++中的示例,我创建了一个自定义 STL 容器,它std::vectorVec. 一切都很好,直到成功后,我尝试添加一个Vec::clear()可以清除矢量的东西。

这是最新的类定义(仅与此问题相关的部分):

我测试这个使用

我得到以下输出:

出于某种原因,clear()破坏了limit指针。当它甚至不修改它时,这怎么可能。代码看起来很简单,但我看不到我缺少什么。

谢谢!

0 投票
3 回答
320 浏览

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

我只是在 Visual Studio 2010 中使用 grub 可引导的 C++ 内核。

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

显然我错过了某种功能实现,但我通过 STL 搜索它并空手而归。它在 push_back 失败:

消失在以太中。

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

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

0 投票
4 回答
409 浏览

c++ - 我仍然无法传递对 Vector 的引用

我在这篇文章中问了一个类似的问题并从回复中学到了但是

我仍然无法让它工作。

带星号的行不起作用。“tree_dict = 新词典”

错误是:

"no operator "=" 匹配这些操作数。

我想做的是每当有新树时创建一个新的 Node*s 向量

实例化。将对新向量 (tree_dict) 的引用传递给节点

构造函数,它将将该引用传递给 Node 的每个新实例

(Node* left and Node* right) 可以 push_back 一个指向自己的指针之前

将引用传递给他们的子节点。

所以每个 Tree.tree_dict 都是一个向量,其中包含指向每个 Node* 的指针

那个树。我需要一些帮助。

0 投票
5 回答
2241 浏览

c++ - std::vector 优化

假设从 std::vector 读取大量值的循环是我程序中的瓶颈,有人建议我改变

通过绕过 [] 运算符,这实际上会提高性能吗?

0 投票
3 回答
2454 浏览

c++ - 就地联合排序向量

我想要一种有效的方法来将排序向量与另一个排序向量进行就地联合。就地,我的意思是算法不应该创建一个全新的向量或其他存储来存储联合,即使是暂时的。相反,第一个向量应该简单地增长新元素的数量。

就像是:

其中,之后,A包含A并集B的所有元素 已排序。

std::set_unionin<algorithm>不会起作用,因为它会覆盖其目的地,即A

另外,这可以通过两个向量只通过一次来完成吗?

编辑: AB中的元素只能A 中出现一次。

0 投票
4 回答
17689 浏览

c++ - “指向最后一个元素的指针”的更漂亮的语法,std::vector?

我想知道是否有更漂亮的语法来获取指向 C++ 向量中最后一个元素的普通指针(不是迭代器)

但是这两个都不是很好看!

0 投票
6 回答
112441 浏览

c++ - 静态向量的初始化

我想知道是否有比下面初始化静态向量的“更好”方式?

这是一个示例代码:)

push_back() 中的值是独立声明的;不在数组或其他东西中。

编辑:如果不可能,请告诉我:)

0 投票
4 回答
27761 浏览

python - boost::python: Python 列表到 std::vector

最后,我可以使用 [] 运算符在 python 中使用 std::vector 。诀窍是在 boost C++ 包装器中简单地提供一个容器来处理内部向量内容:

另一个挑战是:如何将 python 列表转换为 std::vectors?我尝试添加一个期望 std::vector 作为参数的 c++ 类,并添加了相应的包装器代码:

但如果这样做,我最终会得到以下 Boost.Python.ArgumentError:

谁能告诉我如何在我的 c++ 函数中访问 python 列表?

谢谢,丹尼尔

0 投票
4 回答
2000 浏览

c# - 如何使用 std::vector 作为 C# 的参数调用非托管 C++ 函数?

出于性能原因,我有一个 C# 前端和一个 C++ 后端。现在我想调用一个 C++ 函数,例如:

我想要的是一个 C# 包装函数,例如:

我可以将像 Point[] 这样的平面数组传递给非托管 C++ dll,但问题是,我不知道要分配多少内存,因为我不知道函数将返回的元素数量......

有没有一种优雅的方法来处理这个问题而不会遇到内存泄漏问题?

谢谢你的帮助!

本杰明

0 投票
10 回答
22450 浏览

c++ - C++ 循环中 vector::size() 的性能问题

在以下代码中:

size()为每个循环迭代调用成员函数,还是只调用一次?