从二维向量中获取用户的输入
Posted
技术标签:
【中文标题】从二维向量中获取用户的输入【英文标题】:take input from user in 2d vector 【发布时间】:2021-05-15 14:28:56 【问题描述】:我试图从用户那里获取一个名为 alloc 的二维向量中的值,但分配零索引是唯一更改的索引,每个索引的值都会覆盖它我不知道为什么(即:只有第一个索引二维向量受到影响)
代码:
cout<<"Please Enter n"<<endl;
cin>>n;
cout<<"Please Enter m"<<endl;
cin>>m;
std::vector<vector<int>> alloc ;
int val;
cout<<"Please Enter values of allocation matrix"<<endl;
for(int i=0;i<n;i++)
vector <int> temp;
for(int j=0;j<m;j++)
cin>>val;
temp.push_back(val);
alloc.push_back(temp);
temp.clear();
【问题讨论】:
【参考方案1】:for(int i=0;i<n;i++)
vector <int> temp;
for(int j=0;j<m;j++)
cin>>val;
temp.push_back(val);
alloc.push_back(temp);
temp.clear();
alloc.push_back(temp);
不会复制 temp
,它只是将指向temp
的指针添加到alloc
的末尾。 temp
[及其内容] 在 for(i) 循环退出后不再存在。
您需要动态分配“内部”向量实例,而不是使用堆栈对象 [即temp
在这种情况下]。
【讨论】:
以上是关于从二维向量中获取用户的输入的主要内容,如果未能解决你的问题,请参考以下文章