问题标签 [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 投票
9 回答
59879 浏览

c++ - C++ valarray 与向量

我非常喜欢矢量。它们既漂亮又快速。但我知道存在这个叫做 valarray 的东西。为什么我要使用 valarray 而不是向量?我知道 valarrays 有一些语法糖,但除此之外,它们什么时候有用?

0 投票
2 回答
16708 浏览

c++ - 你如何在 XCode + C++ 中使用 std::vector?

由于各种原因(我向你保证它们是有效的,所以请不要说“使用 Cocoa”),我必须使用 XCode、C++、OpenGL、OpenCL(旁边有一点 GLUT)在 Mac 上重建一些图形演示(来自 XP + Visual Studio 2005 开发)。该项目是使用“c++ stdc++”作为命令行工具构建的。

我的 Program.h 文件将我的着色器对象连接在一起、编译、链接,并以其他方式准备它们以用作 OpenGL 着色器程序。此文件中包含以下相关代码行:

并在班级的私人部分:

添加着色器句柄时:

最后,当使用推送着色器句柄时:

根据我所有的经验和研究,C++ 中的这些行没有错。但是在编译的时候(无论是debug还是release,所以和问题无关_GLIBCXX_DEBUG),会产生如下4个错误:

此外,链接到 stl_bvector.h 和 vector.tcc 的文件是:

到目前为止,许多谷歌搜索都没有结果。所有这些代码都可以在 Windows 上完美运行。更糟糕的是,如果我用列表等价物替换上面的代码:

和,

和,

该程序按预期工作。

但是不能将这完全归咎于向量实现,因为以下程序:

工作没有问题。

我很乐意在必要时提供更多信息。

请不要告诉我我应该使用 Cocoa/Objective-C;现在这不是一个真正的选择。虽然是的,但我可以使用列表来完成此功能,但我的演示的其他部分并不那么容易重做。

0 投票
6 回答
298 浏览

c++ - 从四个 std::vector 对象中选择元素最多的一个

我有四个可能(或可能不)包含元素的 std::vector 容器。我想确定其中哪些元素最多并随后使用它。

我试图创建一个 std::map ,它们各自的大小作为键,对这些容器的引用作为值。然后我在每个向量的 size() 上应用 std::max 以找出最大值并通过 std::map 访问它。

显然,一旦至少两个向量中有相同数量的元素,这就会给我带来麻烦。

谁能想到一个优雅的解决方案?

0 投票
4 回答
6955 浏览

c++ - stl 向量如何提供随机访问

昨天晚上,我在工作中使用 std::vector,这个问题突然出现在我脑海中:vector 如何提供随机访问?

我试图研究代码但没有成功。任何人都可以提供一些指示吗?

谢谢,阿伦

0 投票
5 回答
2715 浏览

c++ - 防止向量超出范围时释放数据

有没有办法将 std::vector 中包含的数据的所有权(由 T*data 指向)转移到另一个构造中,防止在向量超出范围后“数据”成为悬空指针?

编辑:我不想复制数据(这将是一个简单但无效的解决方案)。

具体来说,我想要类似的东西:

我想到的唯一可以效仿的是:

然后数据稍后将被释放或(在我的情况下)用作mxSetData(mxArray A,double data)。然而,这会导致少量内存泄漏(用于处理 v 的容量、大小等的数据结构......当然不是数据本身)。

有没有可能不漏?

0 投票
5 回答
59534 浏览

c++ - 在 C++ std::vector 和 C 数组之间转换而不复制

我希望能够在 std::vector 及其底层 C 数组 int* 之间进行转换,而无需显式复制数据。

std::vector 是否提供对底层 C 数组的访问?我正在寻找这样的东西

编辑:

另外,是否可以反过来,即如何在std::vector不复制的情况下从 C 数组初始化一个?

0 投票
6 回答
5590 浏览

c++ - std::vector::reserve 性能损失

上面的函数执行了大约 17000 次,它执行(据我所见。涉及一些转换)在调用 vector::reserve 时会差大约 2 个数量

我一直认为即使对于较小的值,储备也可以加快 push_back 的速度,但这似乎不是真的,我找不到任何明显的理由为什么不应该这样。保留会阻止函数的内联吗?对 size() 的调用是否太贵了?这取决于平台吗?我将尝试编写一些小型基准测试,以在干净的环境中确认这一点。

编译器:gcc (GCC) 4.4.2带 -g -O2

0 投票
3 回答
6773 浏览

c++ - 制作循环迭代器(循环器)的最简单方法?

我有一个对象,我想在游戏中连续循环旅行。我有一系列坐标std::vector,我想用作航路点。

有没有办法制作std::vector<T>::iterator循环(也称为循环器)?

我能想到的最好的方法是有两个迭代器,然后每当第一个迭代器用尽时,将第二个迭代器的值分配给它(它不会用于做任何其他事情)但我什至不确定它是否会工作 - 会赋值运算符复制迭代器用来保存索引的任何内容,还是仅引用它(因此在第二轮之后将无用)?

我希望对象永远在航路点行进(除非它被销毁但在该方法中不会发生),但迭代器只会为每一帧调用一次并且必须返回,以便我可以更新游戏中的其他对象.

该解决方案必须适用于 gcc 和 microsoft 编译器(如果无法用标准 C++ 编写)。

0 投票
5 回答
5526 浏览

c++ - 检查 C++ STL 向量中是否存在特定元素

我想检查一个元素是否存在于特定的向量位置,比如 i,然后像 v[i] 一样访问它。你能让我知道我该怎么做吗?

谢谢你。

0 投票
2 回答
2683 浏览

c++ - std::vector 保留方法未能分配足够的内存

我的 C++ 应用程序中有一个缓冲区类,如下所示:

有时使用构造函数会失败,因为它无法分配所需的内存空间。例如,有一次,调用构造函数res = 37导致了一个段错误,我从它的核心转储中获得了以下堆栈跟踪:

我已经使用 GCC 4.4.2 作为 64 位应用程序编译了这个应用程序,我在 Debian 5 x64 中使用它。

任何帮助深表感谢。谢谢