std::vector 和构造函数中的对似乎是 'empty'

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;
        }
    };