通过在构造函数中传递引用来更新向量

时间:2013-07-19 20:25:43

标签: c++ vector

我正在尝试编写一段代码,我通过类的构造函数通过引用传递向量,并更新类的成员函数中的向量。但是当我回到main函数时,向量中没有更新:

//头文件

 class A{
 private:
        std::vector<T> &x;
 public:
        A(std::vector<T>& x_):x(x_) {}
        int func();
 };

// Cpp文件

int A::func() {
     // process done
     T temp;
     x.push_back(temp);
}

//主要功能

int main() {
    std::vector<T> vec;
    A a(vec);
    a.func();
}

我已经尝试将向量更改为类中的指针而不是引用,但是在函数运行后向量不会更新。有关该计划的变化的任何建议吗?

1 个答案:

答案 0 :(得分:0)

#include <iostream>   
#include <vector>  
using namespace std;

class A
{
    std::vector<int> &x;
public:
    A(std::vector<int>& x_):x(x_) {}
    int func();
};

int A::func(){
    int temp=0;
    x.push_back(temp);
    return 0;
}

int main(){
    std::vector<int> vec;
    A a(vec);
    a.func();
    return 0;
}

一切都很好vec改变了。我想你还有另外一个你甚至不知道的问题或错误。