如何解决如何在二维列表中插入像矢量一样的元素?
所以,我在这里有这段代码...我尝试了2D列表,并搜索了如何在2D列表中插入,却一无所获。
vector<int> dynamicArray(int n,vector<vector<int>> queries) {
vector<int>temp;
list<list<int>>seqList(n);
int lastans=0;
for(int i=0;i<queries.size();i++){
int x=queries[i][1],y=queries[i][2];
if(queries[i][0]==1){
int temp2=(x^lastans)%2;
seqList[temp2].push_back(y);
}
else{
lastans=seqList[(x^lastans)%2][y];
temp.push_back(lastans);
}
}
return temp;
}
现在在这里,如果我更改列表 seqList(n);至
vector
这是使用列表的错误
error: no match for ‘operator[]’ (operand types are ‘std::__cxx11::list<std::__cxx11::list<int> >’ and ‘int’)
seqList[temp2].push_back(y);
所以我以为是括号,但我不确定是什么问题。 我尝试使用大括号,它说:-
warning: statement has no effect [-Wunused-value]
seqList{temp2}.push_back(y);
如果我在这里犯了一个严重的错误,请原谅我,但是,...我在任何地方都找不到解决方案,并且它在vector上都能正常工作
编辑:-
我知道没有运算符...我想知道如何在此2d列表中插入元素?还是有其他方法可以插入2d列表中。
解决方法
std::list
不是std::vector
。那不应该是一个大惊喜。
如果您阅读std::list
的文档(例如here),则会发现std::list
没有operator[]
。
要插入列表,可以使用std::list::insert
。
请注意,如果seqList
是std::vector<std::vector<int>>
,则operator[]
也不插入元素。你有
std::vector<std::vector<int>> seqList(n); // outer vector has n element
seqList[temp2].push_back(y);
// access element at index temp2 in outer vector
// push an element to that element
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。