Я немного удивлен, особенно после прочтения this .
Я использую
template <class T>
int GetPosition(vector<T> mVec, T element)
{
return find(mVec.begin(), mVec.end(), element) - mVec.begin();
}
и
template <class T>
int GetPosition(map<T, int> mMap, T element)
{
return mMap.find(element)->second;
}
в качестве шаблонных функцийчтобы получить индекс определенного элемента в моем списке векторов соответственно.
Элементы - это уникальные указатели на объекты, из которых я хочу получить индекс.
Затем я использую этот шаблон вцикл for подобен
for(int i = 0; i < myCount; i++)
{
index = GetPosition(myVector, elements[i]) //or GetPosition(myMap, elements[i])
}
В то время как все биты информации, которые я собрал, предлагали использовать карту, реализация карты на несколько порядков медленнее: 57 мс с использованием векторного варианта при сравнении 70000 мс с использованиемкарта.
Здесь что-то сильно изуродовано, но я не знаю что.А вы?
Платформа для разработки - MS VS 2008 Standard sp1, для Windows XP