C++ C++;-在地图中搜索具有相同值的所有关键点的最快方法是什么?
假设我们有一个初始化的映射:C++ C++;-在地图中搜索具有相同值的所有关键点的最快方法是什么?,c++,dictionary,stl,find,C++,Dictionary,Stl,Find,假设我们有一个初始化的映射: const std::map<int, std::string> map = { { 0, "A" }, { 1, "B" }, { 2, "A" }, { 3, "A" }, { 4, "C" }, { 5, "A" }, // ... }; const std::map={ {0,“A”}, {1,“B”}, {2,“A”}, {3,“A”}, {4,“C”}, {5,“A”}, // ...
const std::map<int, std::string> map = {
{ 0, "A" },
{ 1, "B" },
{ 2, "A" },
{ 3, "A" },
{ 4, "C" },
{ 5, "A" },
// ...
};
const std::map={
{0,“A”},
{1,“B”},
{2,“A”},
{3,“A”},
{4,“C”},
{5,“A”},
// ...
};
在存在1到1000个值的情况下,检索与值“A”关联的所有键的最快方法是什么?您可以使用Boost.Bimap。
Bimap是一个C++的双向地图库。使用Boost.Bimap,您可以创建关联容器,其中两种类型都可以用作键。您可以使用Boost.Bimap。
Bimap是一个C++的双向地图库。使用Boost.Bimap,您可以创建关联容器,其中两种类型都可以用作键。对于不包含其值索引的
std::map
,您只能执行以下操作:
#include <iostream>
#include <map>
#include <string>
int main()
{
const std::map<int, std::string> map = {
{ 0, "A" },
{ 1, "B" },
{ 2, "A" },
{ 3, "A" },
{ 4, "C" },
{ 5, "A" },
};
for (const auto& pair : map) {
if (pair.second == "A") {
std::cout << '{' << pair.first << ", " << pair.second << "}\n";
}
}
}
#包括
#包括
#包括
int main()
{
常量标准::映射={
{0,“A”},
{1,“B”},
{2,“A”},
{3,“A”},
{4,“C”},
{5,“A”},
};
用于(常数自动和配对:映射){
if(pair.second==“A”){
std::cout对于不包含其值索引的std::map
,您只能执行以下操作:
#include <iostream>
#include <map>
#include <string>
int main()
{
const std::map<int, std::string> map = {
{ 0, "A" },
{ 1, "B" },
{ 2, "A" },
{ 3, "A" },
{ 4, "C" },
{ 5, "A" },
};
for (const auto& pair : map) {
if (pair.second == "A") {
std::cout << '{' << pair.first << ", " << pair.second << "}\n";
}
}
}
#包括
#包括
#包括
int main()
{
常量标准::映射={
{0,“A”},
{1,“B”},
{2,“A”},
{3,“A”},
{4,“C”},
{5,“A”},
};
用于(常数自动和配对:映射){
if(pair.second==“A”){
std::cout映射多映射组合。只有内存可以支付执行速度。定义“最快的方法”:最快的写入、读取、编译和运行速度。?映射多映射组合。只有内存可以支付执行速度。定义“最快的方法”:写、读、编译、运行速度最快..?对于OP来说,它应该是boost::bimap
。对于OP来说,它应该是boost::bimap
。