我正在寻找一个 C++ 容器类,它很像多图,但略有不同。容器将存储成对的字符串。但是当我使用键 K 从容器中检索项目时,我想找到 K 以项目自己的键开头的所有项目。
EG 如果我使用键“abcde”,我想查找键为“adc”和“abcde”的项目,而不是“abcqz”。
或以伪 C++ 形式:
multimap2<string, string> myMultiMap;
myMultiMap.insert( pair("abcde", "hello"));
myMultiMap.insert( pair("abc", "Hi"));
myMultiMap.insert( pair("abcqz", "goodbye"));
// prints 2
cout << myMultiMap.count("abcde") << endl;
// prints "hello" and "Hi"
cout << myMultiMap.everything_which_matches("abcde") << endl;
// prints "Hi"
cout << myMultiMap.everything_which_matches("abc") << endl;
// prints "goodbye"
cout << myMultiMap.everything_which_matches("abcqz") << endl;
插入时间并不重要,但我需要快速访问这些项目。是否可以通过创建特殊的 < 运算符来使用普通的 Multimap 执行此操作?我的预感是,我需要普通的 < 操作符来进行插入,并需要一个特殊的操作符来进行检索。
谢谢
雨果