【发布时间】:2020-11-13 20:05:47
【问题描述】:
我有两个单独的字符串向量:
std::vector<std::string> vectorA;
vectorA.push_back("a1");
vectorA.push_back("\na2");
std::vector<std::string> vectorB;
vectorB.push_back("b1");
vectorB.push_back("b2");
我想创建一个std::string vectorOutput,它显示以下内容:
a1 b1
a2 b2
现在,向量A 中的元素定义在一个类中,而向量B 中的元素来自另一个类,并在发生一些代码逻辑后被读取。矢量大小是相同的。我想知道在 C++ 中创建这个新的vectorOutput 字符串的最佳方法是什么?我正在考虑一个循环,它遍历每个向量的元素并将它们附加到vectorOutput,例如:
for (int i = 0; i < vectorA.size() < i++)
{
vectorOutput += vectorA[i] + vectorB[i];
}
在我的代码中,这些向量的元素比此处显示的要多。还有另一种方法可以实现这一目标吗?也许通过创建枚举或结构?
【问题讨论】:
-
只要两个向量的大小相同,你的循环就可以了。
-
什么是 C++ 中最好的方法 -- 询问“最好的方法”是基于意见的。没有“最好”的方式。可能是坏方法,也可能是好方法,但不是“最好的方法”。
-
考虑使用 std::ostringstream 以获得更好的性能
-
是的,这两个向量的大小应该相同。我在想也许我可以以某种方式取消循环。最初,我只是逐行将文本附加到字符串,并逐行检索vectorA元素。这对我来说似乎是一个不完美的解决方案。