C++ 用于存储唯一数据的数据结构<;关键、价值>;元组,其中<;价值>;最低限度是多少
我必须将这种类型的元组存储在数据结构中C++ 用于存储唯一数据的数据结构<;关键、价值>;元组,其中<;价值>;最低限度是多少,c++,data-structures,stdmap,C++,Data Structures,Stdmap,我必须将这种类型的元组存储在数据结构中 <(1,1),10> <(1,1),9> <(2,1),5> <(1,1),11> 我需要的只是 <(1,1),9> <(2,1),5> 哪种数据结构最适合C++中的此类问题? 这是我目前的解决方案/解决方案,顺便说一句,我会继续寻找更优雅的解决方案 #include <iostream> #include <stdlib.h> #include &
<(1,1),10>
<(1,1),9>
<(2,1),5>
<(1,1),11>
我需要的只是
<(1,1),9>
<(2,1),5>
哪种数据结构最适合C++中的此类问题? 这是我目前的解决方案/解决方案,顺便说一句,我会继续寻找更优雅的解决方案
#include <iostream>
#include <stdlib.h>
#include <vector>
#include <boost/unordered_map.hpp>
#include <boost/foreach.hpp>
using namespace std;
typedef pair<int, int> mapkey;
typedef boost::unordered_map<mapkey,float,boost::hash<mapkey> > hmap;
typedef hmap::iterator hitr;
class mymap
{
public:
hmap map;
void insert(std::pair<mapkey,float> p)
{
hmap::iterator i = map.find(p.first);
if(i==map.end()){
map.insert(p);
}
else{
if(p.second<i->second){
i->second=p.second;
}
}
}
};
int main()
{
mymap map;
map.insert(std::make_pair(mapkey(1,1),10.0f));
map.insert(std::make_pair(mapkey(1,2),22.0f));
map.insert(std::make_pair(mapkey(2,1),22.0f));
map.insert(std::make_pair(mapkey(1,1),5.0f));
BOOST_FOREACH(hmap::value_type i, map.map) {
mapkey m = i.first;
std::cout <<"( "<<m.first<<" , "<< m.second<<" ) > " <<i.second<<endl;
}
return 0;
}
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
typedef对映射键;
typedef boost::无序的_映射hmap;
typedef-hmap::迭代器hitr;
类mymap
{
公众:
hmap地图;
无效插入(标准::对p)
{
迭代器i=map.find(p.first);
如果(i==map.end()){
地图.插入(p);
}
否则{
如果(第二页){
i->second=p.second;
}
}
}
};
int main()
{
我的地图;
映射插入(标准::make_pair(映射键(1,1),10.0f));
映射插入(标准::make_pair(映射键(1,2),22.0f));
映射插入(标准::make_pair(映射键(2,1),22.0f));
映射插入(标准::make_pair(映射键(1,1),5.0f));
BOOST\u FOREACH(hmap::value\u类型i,map.map){
mapkey m=i.first;
std::cout只需一个简单的HashMap即可
Key-具有两个属性的类,假设i
,j
值-始终为最小值,即简单整数
一个哈希表,带有一个插入IF键的自定义插入,以前是看不见的,或者新值小于上一个。
在C++中可以使用hash映射在类中构建。
对于您的问题,只是一个简单的定制,您只需要在HashMap中输入pair,如果
1) 密钥不存在或不存在
2) 若键存在,则将旧值和新值进行比较,若新值小于旧值,则在HashMap中插入对
您可以使用为什么是9,5而不是9,11或9,10?@Mal您可以使用HashMap数据结构。@Mal您想要什么?您能清楚地描述一下您的问题吗?谢谢,我正在无序地使用boost_map@Jite我想为同一个键存储我完全不知道如何定义的最低值“自定义插入,当密钥以前不可见或新值小于上一个值时插入”