我有一对整数和双向量的向量。例如,我的矢量如下(该对的第一个矢量很小,最多只有10个元素):
vector<pair<vector<int>, double> > vecIntDouble;
vector<int> vecInt1; //always small atmost of size 10 elements
vecInt1.push_back(0); vecInt1.push_back(1); vecInt1.push_back(3);
vecIntDouble.push_back(make_pair(vecInt1,0.4));
vector<int> vecInt2; //always small atmost of size 10 elements
vecInt2.push_back(0); vecInt2.push_back(2); vecInt2.push_back(3);
vecIntDouble.push_back(make_pair(vecInt2,0.3));
现在我想在此向量上强制执行以下条件
我知道我可以使用优先级队列。我实现了同样的。但是,我的代码非常慢,因为为了唯一地查找向量而不断进行查找。因此,我正在寻找更快的实施。任何帮助都将深表感谢。
此外,元素随机插入并从此向量中弹出。即如果我拉((0,1,3),0.3),那么我不希望在下一次检索时弹出这个元素(((0,1,3),0.3),((0,2,3) ,0.4))。