Неверный раздел & lt; T & gt; нижний индекс Почему я получаю эту ошибку?

Я получаю ошибку выполнения в следующем фрагменте кода. Любые предложения о том, что может быть причиной?
Error : Invalid deque <T> subscript

typedef boost::shared_ptr<HistObj> shared_hist_def;
typedef std::deque<shared_hist_def> vector_def;
typedef boost::shared_ptr<vector_def> shared_vector_def;
typedef boost::unordered_map<int,shared_vector_def> in_map_def;
typedef boost::shared_ptr<in_map_def> shared_inner_map_def;

Domain::shared_hist_def& Domain::GetSpecificHistoricalTuple(const std::string& symb,const int& tframe,const int& val)
{
Domain::shared_inner_map_def tshare = stat_History_base[symb];
shared_vector_def tmp = tshare->at(tframe);
try
{
Domain::shared_hist_def safe_tuple =  tmp->at(val);
return safe_tuple;
}
catch (std::exception &ex)
{
std::string a = ex.what();
__debugbreak();
}
}

Дополнительная информация:

Вышеуказанный метод является статическим методом. И программа многопоточная. Любая вероятность, что эта ошибка происходит, потому что несколько потоков обращаются к ней. У меня было такое предположение, но потом я думаю, что параметры функции выше никогда не могут быть одинаковыми за один раз.

-4

Решение

Ваш val параметр кажется слишком высоким (больше или равно количеству элементов в deque) или, может быть, это отрицательно.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector