请考虑以下代码:
std::map<std::string, int> m1;
auto i = m1.find("foo");
const char* key = ...
auto j = m1.find(key);
Run Code Online (Sandbox Code Playgroud)
这将为每个地图查找创建一个临时的std :: string对象.避免它的规范方法是什么?
不要使用指针;相反,直接传递字符串。然后您可以利用参考资料:
void do_something(std::string const & key)
{
auto it = m.find(key);
// ....
}
Run Code Online (Sandbox Code Playgroud)
您越多地使用 C++ 的习惯用法,并且不尝试用它编写 C,C++ 通常会变得“更正确”。
| 归档时间: |
|
| 查看次数: |
1646 次 |
| 最近记录: |