#include <iostream>
#include <map>
using namespace std;
int main(){
map<int,int> m;
for (int i = 0; i < 10; i++){
m[i] = i*i;
}
map<int,int>::iterator iter;
iter = m.begin();
while(iter != m.end()){
cout << iter->first << "-" << iter->second << endl;
iter++;
}
for (iter = m.begin();iter != m.end(); iter++){
cout << iter->first << "-" << iter->second << endl;
}
for(auto &it : m){
cout << it.first << "-" << it.second <<endl;
}
return 0;
}
//禁用map默认排序
template<class T>
struct DisableCompare : public std::binary_function<T,T,bool>
{
bool operator()(T lhs,T rhs)const
{
static bool disblecompare = false;
if (lhs == rhs)
{
return false;
}
if (disblecompare)
{
disblecompare = false;
return false;
}
else
{
disblecompare = true;
return true;
}
}
};
//LM987-LM987;DO4-on
std::map<QString,QString,DisableCompare<QString>> tasks;
此种方法禁用排序后,用取值[]符号无法获取值,会直接创建一个默认值并插入,at也不行,会直接崩掉,考虑用 std::unordered_map