我想逐行读取文件并将已读行分发到不同的std::vector中,以便我可以并行处理这些行。类似于这样的代码(尚未编码):
有没有办法避免将
int nb_threads = 4;
std::vector my_vectors[nb_threads];
int count_lines = 0;
std::string line;
while (getline(my_stream, line)) {
my_vectors[count_lines % nb_threads].push_back(line);
count_lines++
}
有没有办法避免将
line
复制到 my_vectors[.]
中,以便 getline
直接填充向量?
.push_back(std::move(line));
会窃取内部字符缓冲区,而不是产生另一个分配。 - BoBTFish