C将矢量分割成n个矢量的最佳方法
发布时间:2020-12-16 03:47:16 所属栏目:百科 来源:网络整理
导读:我有一个std :: vector std :: string在这个向量中我从txt文件push_back字符串,如下所示: std::string line;std::vectorstd::string path;while(getline(fichier,line)){ path.push_back(line);} 我想将路径向量分成另一个10行的向量,例如. 因此,如果我的矢
我有一个std :: vector< std :: string>在这个向量中我从txt文件push_back字符串,如下所示:
std::string line; std::vector<std::string> path; while(getline(fichier,line)) { path.push_back(line); } 我想将路径向量分成另一个10行的向量,例如. 最好的方法是什么? 解决方法
最好的是意见问题,但你可以做类似以下的事情(使用bunch_size为10):
for(size_t i = 0; i < strings.size(); i += bunch_size) { auto last = std::min(strings.size(),i + bunch_size); bunches.emplace_back(strings.begin() + i,strings.begin() + last); } demo 如果你的字符串很大并且你想避免复制,你可以使用移动版本: for(size_t i = 0; i < strings.size(); i += bunch_size) { auto last = std::min(strings.size(),i + bunch_size); auto index = i / bunch_size; auto& vec = bunches[index]; vec.reserve(last - i); move(strings.begin() + i,strings.begin() + last,back_inserter(vec)); } demo (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |