【发布时间】:2020-07-30 01:05:11
【问题描述】:
说出下面的代码:
unordered_map<string, int> test_map;
string_view fake_str = "Mike";
test_map[fake_str]; // does not work. No viable overloaded operator[] for type...
test_map.at(fake_str); // works.
我认为string_view 的目的是在将字符串传递给函数时减少复制对吗?
而[]也是一个函数。为什么我不能将 string_view 传递给[]?
谢谢!
【问题讨论】:
-
在 C++20 中,这可以通过
find()成员函数进行一些设置:en.cppreference.com/w/cpp/container/unordered_map/find -
截至 2021 年 4 月 13 日,unordered_map 上的示例似乎仅在
gcc-trunk和clang trunk上起作用。那么在发布的版本中似乎并没有完全实现?
标签: c++ string unordered-map string-view