想把一个数和map里的value值进行比较,求差值最小的key,如何实现啊
如题
[解决办法]
用指向map的迭代器,然后用value和迭代器指向的值比较,记录差值最小的key
[解决办法]
不就是 打擂台 么?
擂台上留下差值最小的就是。
[解决办法]
如果你不想自己写算法的话,也很简单,将pair<const key, value>类型的值全部复制到一个list中,然后写一个comp函数自定义元素的大小比较.最后待用带函数指针的sort对之排序即可.
[解决办法]
#include <iostream>#include <string>#include <string.h>#include <map>struct student_score { char name[16]; int score;};using namespace std;int main(){ map<string , int> ScoreMap = { {"卢珍", 82}, {"童云", 88}, {"童贞", 71}, {"蒋成", 68}, {"姚伟", 98}, {"谢建国", 78} }; // C++ 11X 容器方便初始化 和 auto遍历 student_score SearchValue = {"No Name", 101}; for (auto it = ScoreMap.begin(); it != ScoreMap.end() ; ++it) { cout << it->first << "\t=> " << it->second << endl; if (SearchValue.score > it->second) { strcpy(SearchValue.name , it->first.c_str()); SearchValue.score = it->second; } } cout << "分数最低者: " << SearchValue.name << SearchValue.score << endl; return 0;}
[解决办法]