c++ - 在 2D 向量上使用 STL 算法提取第一列
问题描述
我正在尝试学习使用更多的 STL 算法。我无法查看是否有更标准的方式来编写以下代码。
std::vector<std::vector<std::string>> myVec;
std::vector<std::string> myInnerVec;
for(int y=0;y < myVec.size();y++){
myInnerVec.emplace_back(myVec[y][0]);
}
在这里,我从向量 myVec 中提取第一列并将其放入 myInnerVec。可以使用任何 STL 魔术改进此代码吗?
解决方案
当然。std::transform
应该做你想做的(未经测试的代码):
transform(myVec.begin(), myVec.end(),
back_insert_iterator<vector<string>>(myInnerVec),
[](const vector<string> &v) {return v[0];});
推荐阅读
- javascript - 如何让 gitlab ci runner 从 docker-compose up some_service 获取其退出代码
- c++ - wxHtmlDCRenderer,如何正确计算宽度
- validation - 在 Ktor 中验证请求
- animation - clipPath 中的路径动画在 Safari 中无法正确呈现
- javascript - fabricjs画布内的svg颜色没有改变
- html - 这是我写的 CSS,试图使内容居中,如图所示
- python - 如何将标量值添加到 pandas df 中的分组项目
- java - 使用谷歌云签署文件
- flutter - Flutter Stepper 不工作,Datepicker 不显示,密码眼不工作
- android - Flutter ListTile 与单选按钮 3 在一行