【问题标题】:How to insert elements in 2-D list like vector?如何在二维列表中插入元素,如向量?
【发布时间】:2021-01-28 02:34:19
【问题描述】:

所以,我在这里有这段代码...我尝试了 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);到 vectorseqList(n) 我得到 0 个错误并且代码工作正常

这是使用列表的错误

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);

如果我在这里犯了一个严重的错误,请原谅我,但是......我无法在任何地方找到解决方案,并且它与矢量一起工作得很好

编辑:-

我知道没有运算符...我想知道如何在这个二维列表中插入元素?或者有没有其他方法可以插入二维列表。

【问题讨论】:

    标签: c++ list vector insert type-2-dimension


    【解决方案1】:

    std::list 不是std::vector。这应该不足为奇。

    如果您阅读std::list 的文档(例如here),您会发现std::list 没有operator[]

    要插入列表,您可以使用std::list::insert

    请注意,如果seqListstd::vector&lt;std::vector&lt;int&gt;&gt;,那么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
    

    【讨论】:

    • 是的 ..我知道没有运算符,因为代码对任何一个都不起作用......但我想知道如何在 2d 列表中插入元素
    • 哦...不,它应该也可以与列表的 push_back 一起正常工作,并且它也不能与 insert 一起工作...它们几乎具有相同的功能geeksforgeeks.org/list-push_back-function-in-c-stl
    • @Shadow 抱歉,我没有真正得到这个问题。现在我认为你的困惑来自list&lt;list&lt;int&gt;&gt;seqList(n);。您不需要插入到外部列表中,因为您已经有 n 条目。您无法通过operator[] 访问它们,因为std::list 没有
    • 是的..我想访问外部列表,因为我必须将 acc 插入到外部列表的位置...这显然不会发生..谢谢!
    猜你喜欢
    • 1970-01-01
    • 2012-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-08
    • 2014-08-09
    相关资源
    最近更新 更多