问题描述
void SomeClass::SomeFunction(QMap<qint64,bool>* times,qint64 startPoint,qint64 endPoint)
{
//Here I want to check the value at an existing index.
}
我尝试过的事情:
times[key];
和:
×[key];
和:
×[key] == 0;
两者均给出错误的结果(该值为true,但我期望为false)。
解决方法
在qt中,qmap为此提供了一种方法:contains
times->contains(startPoint)
所以要走的路是:
if (times->contains(startPoint))
{
....
}
更新:
要获取指针的值,您需要知道运算符的优先级,即您必须:
std::map<int,bool>*x = new std::map<int,bool>();
x->insert ( std::pair<int,bool>(0,false) );
x->insert ( std::pair<int,bool>(5,true) );
bool flag = (*x)[0];
std::cout << "at 0: " << flag << std::endl;
flag = (*x)[5];
std::cout << "at 5: " << flag << std::endl;
所以在你的情况下
bool flag = (*times)[startPoint];