std::构造函数中的向量和对似乎为"空"
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;
}
};
相关文章:
- 一对向量构造函数:初始值设定项列表与显式构造
- 在c++中使用向量时,如何调用构造函数和析构函数
- 我使用向量来创建类对象列表.初始化向量时如何使用参数调用构造函数?
- 通过构造函数创建的所有对象都具有相同的向量
- 如何在 C++ 中使用它的构造函数初始化 unique_ptrs 的 2D 向量?
- 在 c++ 中具有向量的双向链表构造函数
- 将向量从 N1 缩小到 N2 项,而不触发默认构造函数并仅使用 move 语义
- 使用向量初始化参数化构造函数的对象数组
- C++:将向量传递到构造函数以创建成员变量的最佳方法?
- 初始化构造函数C++中结构的向量
- 在具有向量的类构造函数中进行析构函数调用
- 在 c++ 的构造函数中分配对象向量时出错
- 在类和构造函数中使用向量时出现分段错误
- 为什么调用复制构造函数来构造空unique_ptr向量?
- 有没有一种简单的方法可以在对象向量上调用构造函数?
- C++:无法将向量传递给构造函数
- STL向量上出现奇怪的复制构造函数错误
- 使用所述填充构造函数初始化向量中的向量
- C++:在向量<int> vn{MyAllocator<int>(a)} 中调用哪些构造函数?
- 是否将std矢量重新分配到默认的构造函数向量是擦除的好方法