我有一個類有三個實例,一個整數--noOfCouples和兩個向量 - womenHotness和menHotness 我必須先輸入noOfCouples,然後根據我的第一個輸入我必須採取輸入用空格分開,並創建兩個向量如何獲得以空格分隔的輸入並將其存儲在C++中的向量中
到目前爲止,我已經做到了這一點
#include <iostream>
#include <vector>
class hotness {
private:
int noOfCouples;
std::vector<int> womenHotness;
std::vector<int> menHotness;
public:
void setNoOfCouples(int num);
void setWomenHotness(std::vector<int>& hotness);
void setMenHotness(std::vector<int>& hotness);
int getNoOfCouples();
std::vector<int> getWomenHotness();
std::vector<int> getMenHotness();
};
void hotness::setNoOfCouples(int num) {
noOfCouples = num;
}
void hotness::setMenHotness(std::vector<int> &hotness) {
menHotness.swap(hotness);
}
void hotness::setWomenHotness(std::vector<int> &hotness) {
womenHotness.swap(hotness);
}
int hotness::getNoOfCouples() {
return noOfCouples;
}
std::vector<int> hotness::getMenHotness() {
return menHotness;
}
std::vector<int> hotness::getWomenHotness() {
return womenHotness;
}
int main() {
int t, i = 0, noc, k = 0, output;
std::vector<int> women(1000);
std::vector<int> men(1000);
std::cin >> t;
hotness input[1000];
while(i < t) { // this loop is just for test cases
std::cin >> noc;
input[i].setNoOfCouples(noc);
k = 0;
std::cout << "i = " << i << " k = " << k << "\n";
while(k<noc) {
std::cin >> men[k];
std::cin >> women[k];
k++;
}
input[i].setMenHotness(men);
input[i].setWomenHotness(women);
i++;
}
}
但在調試時我得到EXC_BAD_ACCESS即我想我的代碼試圖訪問未分配地址到我的矢量
是否分配採取輸入並分配到一個新的載體以正確的方式,或者是有我的代碼中的任何錯誤
請建議最有效的方式
在此先感謝
請注意,get和set num是unnecesary後setmen通話變得無效。使用'std :: vector :: size'是穩定的 – Quest