如何将值添加到*向量
How to add a value to a *vector?
在我的头文件中,我将这个向量定义为指针。
private:
vector<filteredPoint_t> *filteredValues;
在我的cpp文件中,我想向这个向量添加一个(结构)filterPoint_t
的实例。它编译。
filteredPoint_t fp;
fp.filteredValue = 3.4;
fp.globalIndex = 3;
filteredValues->push_back(fp);
但是,当我运行它时,它会在调用filteredValues->push_back(fp)
之后立即停止。甚至没有显示prinf
控制台输出。控制台上没有错误消息。
我在这里错过了什么?
一些背景信息:我需要将filteredValues
传递给多个线程。这样每个线程都可以写回这个变量。因此,我想我应该使用一个指针变量来做到这一点。
您需要首先分配内存(可能是构造函数)或将其指向有效的vector<filteredPoint_t>
地址:
filteredValues = new vector<filteredPoint_t>() ;
然后你可以在上面使用push_back
。
此外,请确保在析构函数中取消分配使用new
分配的内存
delete [] filteredValues ;
这是一个指针,意味着它必须指向有效的东西才能使用:
vector<filteredPoint_t> *filteredValues;
如果不这样做,您将取消引用未初始化的指针并调用未定义的行为。
初始化意味着:
使其指向有效的东西(即已经存在的矢量)
filteredValues = &existingVectorOfTheSameType;
自己创建一个新的堆向量,例如
filteredValues = new vector<filteredPoint_t>();
相关文章:
- 有没有办法向这个向量添加元素?
- 这种方式是否可以接受向向量添加unique_ptr?
- 向向量添加元素
- 无法向向量添加回调
- 如何将向量添加到结构中以创建一个库存系统,在该系统中,我可以仅使用一个结构向系统添加多种不同的葡萄酒
- 在一个类中向向量添加元素不适用于其他类
- 以下向 c++ 向量添加元素的方法有什么区别
- 我可以在不推送向量的情况下向向量添加值吗?
- 向向量C++添加对
- 使用单词键将多个行号的向量添加到我的地图中
- 在C++中向指针数组中的向量添加元素
- 要创建一个一开始没有特定维度的类Vector,请在类中创建一个方法,允许向向量添加维度
- 一次向 C++ 向量添加多个元素
- STL - 向存储在 STL 映射中的向量添加值
- 向向量添加向量
- 如何向结构类型的向量添加点
- 为什么我的课'当我向向量添加实例时,会调用s析构函数
- 向c++向量添加新字段
- 在c++中向向量添加对象vs向向量添加指针
- 当Type为unique_ptr时,为向量添加运算符[]