C ++中vector类中的push_back

时间:2014-12-18 19:31:52

标签: c++

这是我的代码的快照:

int m = 3;
int l = 4;
int k - 6;
std::vector<int> perceptrons;
for(int i = 0; i < k; i++){
    Perceptron Ki = Perceptron(m, l);
    perceptrons.push_back(Ki);
}

我收到以下错误:

Main.cpp:102:33: error: no matching function for call to       ‘std::vector<int>::push_back(Perceptron&)’
     perceptrons.push_back(Ki);

我有一个Perceptron类是参数m和l的对象,显然,我只是想创建一个感知器矢量。

有人能看出这是为什么吗?

由于

2 个答案:

答案 0 :(得分:2)

因为您试图将Perceptron放入ints的向量中。

将您的代码更改为:

int m = 3;
int l = 4;
int k - 6;
std::vector<Perceptron> perceptrons; // This is the line that needs changing
for(int i = 0; i < k; i++){
    Perceptron Ki = Perceptron(m, l);
    perceptrons.push_back(Ki);
}

答案 1 :(得分:0)

也许你需要一种不同的矢量:

std::vector<Perceptron> perceptrons;

希望复制起来很便宜。