问题标签 [push-back]

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 回答
140808 浏览

c++ - 如何一次将多个整数传递给一个向量?

目前当我必须vector.push_back()多次使用时。

我目前使用的代码是

有没有办法只使用vector.push_back()一次并将多个值传递给向量?

0 投票
3 回答
3377 浏览

c++ - 将指针推送到 C++ 向量中并进行清理

我正在不同系统之间转换一些代码,并且我有一个关于 c++ 向量的问题。

如果我做这样的事情:

在头文件中:

在 c++ 文件中的例程中:

我会遇到麻烦吗?我的假设是该向量将包含一个指向数据的指针,一旦我对其调用删除,该指针将不再有效。我是否需要为Vertex编写一个复制构造函数以便首先复制数据?

额外的:

问题更多与如何将指向已分配内存的指针放入 std::vector<> 并仍然清理本地分配的数据有关。本质上,我如何将数据复制到向量中,以便我仍然可以清理我的副本。

原始代码在 DirectX 中。我正在将它移植到 iPhone 上。原始代码在例程中本地分配了一个子网格,使用:

我试图复制 ID3DXMesh 如何能够添加到向量中,然后在例程中失去它的范围。

由于我无法访问 D3DXCreateMesh(),我想我只需分配我需要的顶点,将它们放入向量中,然后进行清理。

抱歉,我想保留细节,因为问题只是我如何分配一块数据,将指针放入 std::vector<>,然后清理本地分配的内存。:)

我假设必须在某处编写一个复制构造函数。只是不确定在哪里或如何。

子网格如下所示:

他们添加到的向量看起来像:

0 投票
1 回答
1429 浏览

c++ - push_back 不向向量 c++ 添加数字

我正在尝试调试我的mergesort程序,当我尝试使用“push_back”将向量“left”或“right”中的值添加到“mergedList”时,这似乎在“merge”函数内部的某个地方存在问题。以下是gdb调试会话的摘录(下面是我的完整程序代码)

这发生在第一次调用合并时;我能够使用“print left[0]”访问“vector left”的值,我得到了一个我期望的值(向量“left”中的所有数字都在 1-50000 之间),但是在执行行之后i = 0 时的代码:

“mergedList.push_back(left[i]);” 然后使用调试器打印mergedList[0],似乎添加left[0]不成功。

我误解了 push_back 吗?还是向量?抱歉,如果我的问题不清楚 - 请让我知道如何改进它!


GDB 调试会话:


0 投票
3 回答
653 浏览

c++ - C++ 中向量推回操作的类型转换

我有两个向量

在某些时候,我需要从一个堆栈中弹出一些元素并将其推入另一个堆栈。

但是,eclipse 会抛出一个错误,无效的参数。但是当我输入强制转换输入时工作正常。

现在,为什么需要这种类型转换?我正在阅读(主要是在 C++ Primer 中)根据 C++11 需要避免类型转换。

0 投票
1 回答
1786 浏览

c++ - 向量 push_back 导致未处理的异常

一切正常,直到编译器尝试执行 push_back 操作。在 if 条件中返回正确的值。
我已将项目声明为:

//在.cpp文件中

弹出以下错误:

PS:我还有一个使用 push_back 操作的功能,它工作正常。

谁能帮我这个?

即使这给出了同样的错误:

0 投票
2 回答
236 浏览

c++ - 矢量.push_back

我正在编写一个从给定格式的数据文件中读取的应用程序。在文件中,我动态地创建了一个指向向量对象的二维指针数组。基本上,它通读文件,当它找到给定的字符串模式时,它会停止并读取

现在,pushBack 是一个很大的数字,可能高达 20000,但它因文件而异。

这段代码的问题是我没有收到任何运行时错误,甚至没有抛出任何异常,我试图捕捉它们。程序简单结束!可以肯定的是,我添加了cout << "position1" << endl;andcout << "position2" << endl;行和后面的打印。

如果你没有猜到:

tempTestStringACCEL- 字符串对象

sstream- 字符串流对象

array- 动态内存中的二维结构数组

vectorName- 指向向量对象的指针,指向的结构成员array

附录:

因此,作为对一些评论的回应,这里是代码的另一部分,其中创建了所有变量:

大批

结构名称

tempDim1 和 tempDim2 分别const ints为 2 和 3。pushBack 的值最大为 20000

0 投票
3 回答
8681 浏览

c++ - C++ push_back vs Insert vs emplace

我目前正在使用带有 C++ 的向量制作应用程序。

我知道预优化是万恶之源。

但我真的忍不住好奇。

我正在将其他向量的一部分添加到另一个向量中。
我们会说向量的大小永远不会改变 300。

因为我总是附加到向量的末尾

这样做是否更快:
a.reserve(300);
a.insert(a.end(), b.begin(), b.end());

或者循环遍历我想要附加的向量并使用push_backor单独添加每个项目(同时仍然预先保留)会更快吗emplace?(不确定哪个更快)

任何人都可以帮助我吗?

0 投票
4 回答
39911 浏览

c++ - C++ std::string 追加 vs push_back()

这确实是一个仅出于我自己利益的问题,我无法通过文档确定。

我在http://www.cplusplus.com/reference/string/string/上看到 append 具有复杂性:

“未指定,但通常在新字符串长度中达到线性。”

而 push_back() 具有复杂性:

“未指定;通常为摊销常数,但在新字符串长度中达到线性。”

作为一个玩具示例,假设我想将字符“foo”附加到字符串中。将

完全一样吗?或者有什么不同吗?您可能认为 append 会更有效,因为编译器会知道将字符串扩展指定的字符数需要多少内存,而 push_back 可能需要在每次调用时保护内存?

0 投票
2 回答
286 浏览

c++ - 使用 std::list 的段错误

我是使用 C++ 的 Java 用户,我很难理解这句话出了什么问题。我的程序在我放置push_back命令的任何地方都出现了段错误。所以我想知道到底发生了什么。

这是完整的代码:

0 投票
5 回答
21153 浏览

c++ - 推回地图容器

我们得到了这张地图:

此函数是否与 Vector 的 push_back 函数相同:

由于 size 返回容器的大小,我认为它是正确的,根据以下情况它是: index 0 = 200 index 1 = 150 你想推回 100,values.size() 将返回 2,对吗?那么,它会像正常的 push_back 一样进入索引 2,对吗?