私は、参照として関数にベクトルを渡し、関数内のベクトルを変更するという簡単な作業をしようとしています。 はしかし、私は次の例では、かなり不可解なエラーを取得:関数への参照としてのベクトルの受け渡し
// data.h
class data {
public:
std::string a;
double b;
uint8_t c;
};
私たちは、メインウィンドウのクラスでこれらのデータオブジェクトのベクトルを作る:
// MainWindow.h
class MainWindow {
public:
std::vector<data> vec;
void needs_vec(std::vector<data> &vec);
};
私はトラブルの機能を持っているの下に、 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
};
私はまた、右辺値参照で遊んでみましたが、私は、同様の結果満たし:解読できない20ページのエラーメッセージを。
'vec.double = get_a_number();'これは大きなポインティング矢印のようなものです。 – DeiDei