【发布时间】:2020-04-20 01:35:14
【问题描述】:
直截了当,我试图输出在类中存储为私有的向量的值,但它没有输出任何东西。
#include <iostream>
#include<vector>
using namespace std;
class logic {
public:
void setVector(vector <int> aa){a = aa;}
void setVector1(vector<int> bb){bb = b;}
vector<int> &getVector(){return a;}
vector <int> &getVector1(){return b;}
int logics(vector<int>&a, vector<int>&b);
void printArrays(vector <int>a, vector <int>b);
private:
vector <int> a;
vector <int> b;
};
int logic::logics(vector<int> &a, vector<int> &b){
int r;
while(cin >> r){
for(int i = 0; i < a.size(); i++){
a.push_back(r);
}
if(r < 0){break;}
}
}
void logic::printArrays(vector<int> a, vector<int> b){
cout << "im working!" << endl;
for(int i = 0; i < a.size(); i++){
cout << a[i] << "\t";
}
for (vector <int>::iterator it = a.begin(); it < a.end(); it++){
cout << *it << endl;
}
}
int main()
{
logic obj;
obj.logics(obj.getVector(),obj.getVector1());
obj.printArrays(obj.getVector(), obj.getVector1());
}
我试图使向量保持不变,因为我已经看到它们是这样声明的,但是向量正在被修改,所以我得到一个错误。我还看到您可以制作对象和类的向量,例如向量 a,但我不理解它
提前致谢。
【问题讨论】:
-
抱歉,确实如此,我实际上有 2 个向量,但我删除了第二个向量以便于阅读。在我的类里面的实际代码中是这样定义的: void printArrays(vector
a, vector b);当我发布问题时,我只是忘记从方法中删除它。 -
这将是我的完整代码。它编译没有错误,输入并显示“我正在工作!”但不打印矢量