我以这种方式使用 std::map :
#include <map>
#include <string>
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
map<string, int> my_map;
my_map.insert(pair<string, int>("Ab", 1));
my_map.insert(pair<string, int>("Abb", 2));
my_map.insert(pair<string, int>("Abc", 3));
my_map.insert(pair<string, int>("Abd", 4));
my_map.insert(pair<string, int>("Ac", 5));
my_map.insert(pair<string, int>("Ad", 5));
cout<<my_map.lower_bound("Ab")->second<<endl;
cout<<my_map.upper_bound("Ab")->second<<endl;
return 0;
}
我想获取其键以特定字符串开头的所有值(例如“Ab”)。我可以使用 map::lower_bound 轻松获得开始迭代器。但是我怎样才能得到一个上限?我是否必须从下限开始迭代整个集合并检查每个键是否仍以“Ab”开头?