gpt4 book ai didi

c++ - 如何在现代 C++ 中将列附加到二维 vector

转载 作者:行者123 更新时间:2023-11-28 01:34:17 25 4
gpt4 key购买 nike

我正在考虑将列附加到二维 vector 的现代方法是什么。我尝试了以下方法:1. 朴素的方式:

void insert_col(vector<vector<int>>& data, vector<int>& newCol){
if(newCol.size()!=data.size()){
return ;
}
for(int i = 0; i < data.size(); i++){
data[i].push_back(newCol[i]);
}
}

第二次尝试无效:

transform(data.begin(), data.end(), newCol.begin(), /*not sure about this part*/, [](vector<int>& row, int colVale)->int{return colVale;});

想法是使用 transform 来迭代 2d vector 和要插入的列。我想知道是否有一种方法可以在每一行的末尾追加?

  1. 第三次尝试:

    将每一行重新插入到 data.begin() 中,这可以工作但可能效率不高。

    任何其他有效的解决方案将不胜感激。谢谢!

最佳答案

您要求一个有效的解决方案。但是您从一开始就使用天真的 vector<vector<int>> 阻碍了性能并在您想要按列追加时按行存储数据。

矩形矩阵最好存储在具有奇特索引的单个 vector 中(例如 data.get(i, j) 而不是 data[i][j] )。如果您按列存储,添加一列非常简单:

data.push_back(newCol);

关于c++ - 如何在现代 C++ 中将列附加到二维 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50013055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com