【发布时间】:2020-04-10 13:14:51
【问题描述】:
这是我的代码(工作正常),以及 IDE 的投诉:
我尝试使用vector<string> result(tmp.size()); 设置矢量大小,但之后,结果将在前面包含tmp.size() 数量的空字符串,我不想使用insert。
有没有更好的解决方法?
【问题讨论】:
-
这是关于优化的。每次达到向量分配的大小时,都需要重新分配它。如果在之前分配if并使用insert,它会运行得更快。或者您可以使用储备来避免重新分配
-
我认为
clang-tidy消息是建议std::vector::reserve而不是std::vector::resize。 -
请注意,如果
decltype(*mph)支持迭代器,那么您可以简单地执行std::vector<std::string> result(mph->begin(), mph->end());