问题描述
我已获得2D向量(A)。我需要存储包含元素0的向量的行和列索引的值。
这是我的代码-
vector<pair<int,int>>v;
for(int i=0;i<A.size();i++){
for(int j=0;j<A[i].size();j++){
if(A[i][j]==0){
v.push_back(make_pair(i.first,j.second));
}
}
}
但是我一直收到这个错误
错误:'__gnu_cxx :: __ alloc_traitsstd :: allocator
, std :: vector> :: value_type'{aka'class std :: vector'}没有 名为“第一”的成员 错误:'__gnu_cxx :: __ alloc_traitsstd :: allocator
, std :: vector> :: value_type'{aka'class std :: vector'}没有 名为“第二”的成员
解决方法
int
没有名为first
或second
的成员。
要添加到表示2D索引的对向量中,您只需要:
if(A[i][j]==0) {
v.push_back({i,j});
}
,
在进行配对时,您只需要将值输入到make_pair函数中即可。
如果要用(i,j)个值配对,则写make_pair(i,j)
。要访问这些值,请使用first
和second
成员。
if(A[i][j] == 0){
v.push_back(make_pair(i,j));
}
要访问这些值,请输入v[i].first
和v[i].second
。
这应该可行
vector<pair<int,int>>v;
for(int i=0;i<A.size();i++){
for(int j=0;j<A[i].size();j++){
if(A[i][j]==0){
v.push_back(make_pair(i,j));
}
}
}