我的程序中有一个 std::map ,它存储成对的值。我希望地图中的键是唯一的——这是 std::map 类的预期行为。但是当我将这些对插入其中时,会重复一些键。我该如何解决这个问题?
我的代码如下:
map<float,vector<float> *> inpDataMap;
inpDataMap.clear();
for(int i = 0; i < input.getNum(); i++)
{
float xVal = input[i][0];
float yVal = input[i][1];
if(inpDataMap.count(xVal) > 0)
{
myfile << i << " repeated xval: " << xVal << " : " << yVal << endl;
inpDataMap[xVal]->push_back(yVal);
myfile << "repeated value pushed" << endl;
}
else
{
vector<float> *inVec = new vector<float>;
inVec->push_back(yVal);
inpDataMap[xVal] = inVec;
myfile << i << " not repeated:" << xVal << ":" << yVal << endl;
}
}
正如你所看到的,我在这里的地图实际上是一个浮点数和一个相关浮点数的向量的关联。如果已经存在一个键,则将该值添加到与该键对应的向量中。但就像我说的,密钥不是唯一存储的。有人可以帮我解决这个问题吗?
拉克什。