[英]std::vector and pair in constructor appear to be 'empty'
由於某種原因,我的向量容器和對容器在運行時輸出為“ 0”,而不是“ input”的值。 它與我聲明容器大小的方式有關嗎? 我也不確定我是否正確使用了emplace_back函數。
#include <iostream>
#include <utility>
#include <vector>
using namespace std;
class Graph {
private:
int n, h, input;
vector< pair <int,bool> > couple;
vector <int> vec;
public:
Graph(vector<int> getVec, int getN, int getH) : vec{move(getVec)}, n(getN), h(getH){
vec.resize(n*n);
couple.resize(n*n);
for (int i = 0; i < vec.size(); ++i){
cin >> input;
vec.push_back(input);
couple.emplace_back(make_pair(vec[i], false));
// cout << vec[i];
cout << couple[i].first;
}
};
};
int main()
{
int N, H, input;
cin >> N >> H;
vector <int> vector;
Graph g (vector, N, H);
}
在構造函數中嘗試一下。 調整大小后,您不應該使用push_back,因為vector.resize()已經使向量膨脹。
Graph(vector<int> getVec, int getN, int getH) : vec{ move(getVec) }, n(getN), h(getH){
vec.resize(n*n);
couple.resize(n*n);
for (int i = 0; i < vec.size(); ++i) {
cin >> input;
vec.at(i) = input;
couple.at(i) = make_pair(vec[i], false);
cout << couple[i].first;
}
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.