簡體   English   中英

std :: vector和構造函數中的對似乎為“空”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM