问题标签 [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.
c++ - 地图> > 推回成对?
我有这个map<string, vector <pair<int, int> > >
变量,我正在推回一个值,但 code::blocks 告诉我该对没有名为 push_back 的成员函数。我应该怎么做才能让它推回对而不是pair<>.push_back()
?
这基本上就是我在做的事情:
错误是:
c++ - 对象被推回和函数退出后,C++ 向量推回崩溃
问题是另一个类访问向量并删除迭代器的愚蠢错误。与下面的代码无关。很抱歉浪费您的时间。
我一定错过了一些基本的东西。我有一个函数,它创建一个对象,操作它的数据,然后将它推入一个向量。函数退出的那一刻,程序因 SIGSEV 而崩溃,我只能盯着 (Kdevelop gcc 4.5 gdb) :
我不是在存储指针,而是在尝试存储实例化的对象。
这就是整个功能。
push_back 函数在推回对象时不会复制对象吗?是否因为 push_back 试图销毁 temp_person 而调用了析构函数?我没有在个人类中定义复制运算符。我以前遇到过这个问题,但从未弄清楚。发生这种情况是因为函数 temp_person 超出范围吗?谢谢 !
编辑:班级个人
请注意,指令向量具有另一个结构向量。
这里没有什么疯狂的。
这可能是由 population.push_back 获得的浅拷贝的问题吗?
c++ - 聪明地处理向量内存分配
假设我必须遍历一个可能非常大的数字向量,并将偶数和奇数元素复制到新的单独向量中。(源向量可能具有任何比例的偶数与赔率;它可能是所有偶数、所有赔率或介于两者之间的某个位置。)
为简单起见,push_back
常用于此类事情:
但是,我担心如果将其用作性能至关重要的排序算法之类的实现的一部分,这将是低效且有害的。例如,快速排序涉及分离元素,就像这样。
您可以使用reserve()
预先分配内存,因此只需要一次分配,但随后您必须对整个源向量进行两次迭代 - 一次计算需要排序的元素数量,再一次用于实际复制。
当然,您可以分配与源向量大小相同的空间,因为新向量都不需要容纳更多空间,但这似乎有点浪费。
我错过了更好的方法吗?通常可以信任为push_back()
程序员管理这类事情,还是会成为敏感算法的负担?
multithreading - 带有 OpenMP 多线程的 Stl 容器向量 push_back
我想将一个对象 push_back 到来自不同线程的向量中。没有。线程数取决于机器。
问题是,我不确定它是否有效。我没有崩溃。我正在使用openMP。openMP 在排队吗?使用 BestCoreSpaces.reserve(tid) 为容器预留内存或使用 BestCoreSpaces.assign(tid, Space) 分配元素的数量可能就足够了。有人可以帮助我吗?
c++ - 带有类对象的 C++ 向量 push_back
我已经使用这个网站有一段时间了,到目前为止从来不需要问一个新问题(找到了我到目前为止需要的所有答案)。
我需要将多个对象 push_back 到一个向量中,但 VS 抛出一个错误(这可能是由于堆损坏,这表明 PVSS00DataGate.exe 或它已加载的任何 DLL 中的错误)我似乎无法解决为了我自己。
这是我正在尝试做的事情,它可以将第一个对象 push_back 到向量中,但是当我尝试 push_back 第二个对象时,即发生错误。
dataLogger 声明在
这是 HWObject 类,我不想用代码让你不知所措。
c++ - push_back() 不适用于自定义数据类型(模板类)
显然 push_back() 不适用于我的自定义数据类 T。编译时出现以下错误:
错误:没有匹配函数调用 'Vector::push_back(int&)'</p>
有人可以向我解释为什么会这样吗?谢谢你。
c++ - 在 C++ 中对 STL 列表使用 push_back() 会导致访问冲突、崩溃
我正在使用自己的自制游戏引擎创建游戏,但在使用列表时遇到了麻烦。
我的程序中有一个名为 BoardState 的结构。这些结构中的每一个都有一个称为子项的 BoardState 指针列表。这是因为我为我的游戏 AI 创建了一个 BoardStates 树。
为了帮助创建我的树,我有一个名为 MakeBoard 的函数。这个函数获得了创建新板所需的所有信息,然后它应该将指向该新板的指针添加到父板的子列表的末尾。这是相关的功能,MakeBoard:
{
}
额外注释的部分是我尝试其他想法以查看它们是否有效的地方。
不幸的是,这会导致程序抛出以下错误:
访问冲突读取位置 0xcdcdcdd1。
如果我深入调试器,我会发现问题出在 STL 列表文件中。这些是调用堆栈中的前三个调用:
OpenGL_Engine_Test1.exe!std::list >::_Insert(std::list >::_Const_iterator<1> _Where=..., tagBoardState * const & _Val=0x049a1a80) Line 718 + 0x10 bytes C++
然后它打开定义 list 的文件,并指出 _insert 函数内的问题行:
void _Insert(const_iterator _Where, const _Ty& _Val) { // 在 _Where 处插入 _Val
#if _HAS_ITERATOR_DEBUGGING if (_Where._Mycont != this) _DEBUG_ERROR("list insert iterator outside range"); #endif /* _HAS_ITERATOR_DEBUGGING */
除此之外,我真的不知道更多。我不知道为什么会出现这个问题。我知道“访问冲突”基本上意味着我要么试图访问不存在的东西,我无权访问,要么存在某种范围问题,但我看不出有什么其中适用。
如果有人能指出我正确的方向,我将不胜感激。我做了很多搜索,但我发现的几乎所有东西都与向量有关,而且似乎并不是我的问题。
c++ - 在 C++ 中,向量函数 push_back 会增加空数组的大小吗?
快速提问。假设我声明了一个大小为 20 的向量。然后我想使用 push_back 向它添加一些整数。
我的向量的容量现在是 22,还是仍然是 20?是否分别将 5 和 14 添加到索引 [19] 和 [20] 中?或者他们在[0]和[1]?
c++ - What happens under the hood of vector::push_back memory wise?
My question is regarding the effect of vector::push_back
, I know it adds an element in the end of the vector but what happens underneath the hood?
IIRC memory objects are allocated in a sequential manner, so my question is whether vector::push_back
simply allocates more memory immediately after the vector, and if so what happens if there is not enough free memory in that location? Or perhaps a pointer is added in the "end" to cause the vector to "hop" to the location it continues? Or is it simply reallocated through copying it to another location that has enough space and the old copy gets discarded? Or maybe something else?
c++ - 结构初始化向量
push_back
我想知道如何使用该方法向我的结构向量添加值
那么现在我该如何添加元素呢?
我有初始化字符串名称的函数(主题名称)
函数调用