Если вы действительно ограничены std::
и не можете использовать что-либо еще, std::map
- ваш лучший выбор. Это дает вам только логарифмическое время поиска, а не постоянное, но по сравнению с массивами / векторами оно будет невероятно быстрым. Также я предполагаю, что только для 100000 элементов логарифмический поиск будет достаточно быстрым, и вы не выиграете много, используя хеш-таблицу.
При этом, скорее всего, ваша реализация уже включает некоторую реализацию хеш-таблицы. Так что если std::map
действительно недостаточно быстро, попробуйте
#include <tr1/unordered_map>
std::tr1::unordered_map<int,int> test;
или
#include <hash_map>
stdext::hash_map<int,int> test;
или даже
#include <boost/tr1/unordered_map.hpp>
std::tr1::unordered_map<int,int> test;