gpt4 book ai didi

c++ - 如何给 *vector 添加一个值?

转载 作者:行者123 更新时间:2023-11-30 00:49:58 26 4
gpt4 key购买 nike

在我的头文件中,我将这个 vector 定义为一个指针。

private:
vector<filteredPoint_t> *filteredValues;

在我的 cpp 文件中,我想将 (struct) filterPoint_t 的一个实例添加到此 vector 中。它编译。<​​/p>

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 ;

关于c++ - 如何给 *vector 添加一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26574099/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com