在Multimap中检索特定值,您可以使用以下方法:
find
函数:#include<iostream>
#include <map>
#include<vector>
int main() {
std::multimap<int, std::string> my_multimap;
my_multimap.insert(std::make_pair(1, "one"));
my_multimap.insert(std::make_pair(2, "two"));
my_multimap.insert(std::make_pair(3, "three"));
my_multimap.insert(std::make_pair(4, "four"));
my_multimap.insert(std::make_pair(5, "five"));
my_multimap.insert(std::make_pair(6, "six"));
my_multimap.insert(std::make_pair(7, "seven"));
my_multimap.insert(std::make_pair(8, "eight"));
my_multimap.insert(std::make_pair(9, "nine"));
my_multimap.insert(std::make_pair(10, "ten"));
int key = 5;
auto range = my_multimap.equal_range(key);
for (auto it = range.first; it != range.second; ++it) {
std::cout << "Key: " << it->first << ", Value: " << it->second<< std::endl;
}
return 0;
}
lower_bound
和upper_bound
函数:#include<iostream>
#include <map>
#include<vector>
int main() {
std::multimap<int, std::string> my_multimap;
my_multimap.insert(std::make_pair(1, "one"));
my_multimap.insert(std::make_pair(2, "two"));
my_multimap.insert(std::make_pair(3, "three"));
my_multimap.insert(std::make_pair(4, "four"));
my_multimap.insert(std::make_pair(5, "five"));
my_multimap.insert(std::make_pair(6, "six"));
my_multimap.insert(std::make_pair(7, "seven"));
my_multimap.insert(std::make_pair(8, "eight"));
my_multimap.insert(std::make_pair(9, "nine"));
my_multimap.insert(std::make_pair(10, "ten"));
int key = 5;
auto lower_bound = my_multimap.lower_bound(key);
auto upper_bound = my_multimap.upper_bound(key);
for (auto it = lower_bound; it != upper_bound; ++it) {
std::cout << "Key: " << it->first << ", Value: " << it->second<< std::endl;
}
return 0;
}
这两种方法都可以在Multimap中检索特定值。find
函数返回的是一个指向找到的元素的迭代器,如果没有找到,则返回一个指向end()
的迭代器。equal_range
函数返回一个包含两个迭代器的pair,第一个迭代器指向特定值的第一个元素,第二个迭代器指向特定值的最后一个元素之后的位置。lower_bound
和upper_bound
函数返回的是一个指向特定值的第一个元素和最后一个元素之后的位置的迭代器。
领取专属 10元无门槛券
手把手带您无忧上云