C++ 我应该使用什么来提高性能:向量对还是2d数组?

C++ 我应该使用什么来提高性能:向量对还是2d数组?,c++,C++,我应该使用什么来获得更好的性能:vector或string myArray[10][2]10是示例编号,2因为我需要存储2个字符串,或者有更好的方法可以使用?为了获得更好的性能,您应该使用更快的方法 如果两者都不是很快,那么您应该使用更方便的 通过测量,您可以找出程序中哪个更快。也可以是,这取决于你如何使用它们 还是有更好的方法让我坚持 在某些情况下,在一个大型块中分配所有字符串的内存可能比使用单独的std::string对象更有效 p.S.std::pair很少是一个好的选择。通常,最好使用一

我应该使用什么来获得更好的性能:vector或string myArray[10][2]10是示例编号,2因为我需要存储2个字符串,或者有更好的方法可以使用?

为了获得更好的性能,您应该使用更快的方法

如果两者都不是很快,那么您应该使用更方便的

通过测量,您可以找出程序中哪个更快。也可以是,这取决于你如何使用它们

还是有更好的方法让我坚持

在某些情况下,在一个大型块中分配所有字符串的内存可能比使用单独的std::string对象更有效

p.S.std::pair很少是一个好的选择。通常,最好使用一个自定义类,在该类中可以为两个子对象提供描述性名称。

std::pair and vector意味着您只需在容器中迭代一次,就可以使用

for(auto& p : vector)
     ...do stuff
如果使用2d数组,则必须使用两个for循环来迭代字符串。
虽然我可能是错的,但测量它并找出答案。我预计如果只有10个元素,差异将非常小,你无法非常容易地可靠地测量它。这意味着这种类型的优化可能是浪费精力。为什么不为这对字符串创建一个结构,以实现更好的语义耦合呢?对我来说,这真的让人觉得你把注意力集中在了你的程序的错误之处。在担心性能之前,试着编写一个好的、可读的、可维护的和可工作的程序。如果您有一些性能要求,而程序与之不匹配,那么测量并分析以找到前两个瓶颈,并仅修复那些有足够文档和注释来解释优化以及为什么需要优化的瓶颈。std::array的性能往往与原始array差不多;正如我提到的,vector的性能稍差一些。std::pair只是两个相对不相关的值。如果这两个值属于单个对象,那么您确实应该创建一个结构或类。这也允许您创建专门为该对象定制的函数,而不是仅使用任何一对字符串进行调用。循环本身并不慢,两个元素上的循环可能无论如何都会被展开。访问模式应该大致相同。感谢您指出@AsteroidsWithWings。我不知道