当我们做cout << string时会发生什么?

use*_*125 -5 c++ string vector

考虑一下我们已经声明了一个这样的字符串:string x;和这样的字符向量:vector<char> x_vec; 我在想是否有任何优势

cout<<x;
Run Code Online (Sandbox Code Playgroud)

过度

for(int i=0;i<x.length();i++)
      cout<<x[i];
Run Code Online (Sandbox Code Playgroud)

要么

for(int i=0;i<x_vec.size();i++)
      cout<<x_vec[i];
Run Code Online (Sandbox Code Playgroud)

表现?我的观点是因为我们经常达到我们必须在strings和vectors 之间做出选择的地步.该程序实际处理或接近的第一个示例是否与其他示例不同?

NPE*_*NPE 6

我的观点是因为我们经常要达到我们必须在字符串和字符向量之间进行选择的程度.

常常?我不这么认为.

如果某些东西基本上是一个字符串,那就用吧std::string.

如果您能够证明性能不是最理想的(通常通过在真实数据上分析您的程序),那么请考虑替代方案.std::vector<char>是一个这样的选择,但还有其他.哪个(如果有的话)更可取决于实际用例.

在所有的可能性,你会遇到一个引人注目的现实情况下,更换前,这将是一个同时std::string具有std::vector<char>.