gpt4 book ai didi

c++ - 将 vector 作为函数的引用传递

转载 作者:行者123 更新时间:2023-11-28 05:13:50 26 4
gpt4 key购买 nike

我正在尝试执行将 vector 作为引用传递给函数并在函数内修改 vector 的简单任务。但是,我在以下示例中遇到了一些非常难以理解的错误:

// data.h
class data {
public:
std::string a;
double b;
uint8_t c;
};

我们在 MainWindow 类中创建这些数据对象的 vector :

// MainWindow.h
class MainWindow {
public:
std::vector<data> vec;
void needs_vec(std::vector<data> &vec);
};

下面我得到了 troublemaker 函数,以及 MainWindow 对象的构造函数,它是一切都聚集在一起的地方。

// other_file.h
void needs_vec(std::vector<data> &vec) {
for (auto &vec: vec) {
vec.b = get_a_number();
}
};

// MainWindow.cpp
MainWindow::MainWindow() {
// Read a configuration file and initialize the vector
this->vec = read_config();

// Try to apply our function
needs_vec(this->vec);

// Continue doing other things
};

我也尝试过使用右值引用,但我遇到了类似的结果:无法辨认的二十页错误消息。

最佳答案

您的类 data 没有名为 doubledouble 值,而是 b

应用这些更改:

void MainWindow::needs_vec(std::vector<data> &vec) {
for (auto &vec: vec) { // Change the name here
vec.b = get_a_number();
}
}

此外,您是否使用右大括号和分号结束类(class),};

例如

// data.h
class data {
public:
string a;
double b;
uint8_t c;
} /* including ";"?? */

关于c++ - 将 vector 作为函数的引用传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43049929/

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