Почему эта функция C ++ терпит неудачу после выполнения более десяти тысяч раз? [закрыто]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Почему эта функция C ++ терпит неудачу после выполнения более десяти тысяч раз? [закрыто]

Сообщение Anonymous »

Код: Выделить всё

template
void LfuCache::removeFromFreqHash(NodePtr& node) {
unsigned int index;
index = node->getFrequency();
FreqPtr freqPtr = this->freqHash_[index];
freqPtr->removeNode(node);

if (index = this->minFreq_) {
if (freqPtr->isEmpty()) {
updateMinFreq();
}
}
}
Эта функция, когда выполняется примерно в 13 000 раз, неправильно возвращает значение 1 для Node-> getFrequency () . Несмотря на то, что это приводит к изменению назначения индекса на 1, оно не должно влиять на значение, хранящееся в этом-> freqhash_ [index] , которое является контейнером без порядка_map. Однако, даже когда в контейнере Freqhash присутствует 1 из 1, он все еще возвращает нулевое значение! < /P>
Ниже приведен частичный код < /p>
template
class LfuCache :public ICachePolicy {
private:
using Node = LfuNode;
using NodePtr = shared_ptr;
using NodeHash = unordered_map;
using FreqList = NodeList;
using FreqPtr = shared_ptr;
using FreqHash = unordered_map;

};

template
class LfuNode {
private:
Key key_;
Value value_;
unsigned int freq_;
shared_ptr pre_;
shared_ptr next_;

public:
LfuNode() = delete;
LfuNode(Key key, Value value)
: key_{ key }
, value_{ value }
, freq_{ 1 }
, pre_{ nullptr }
, next_{ nullptr }
{}
unsigned int getFrequency() { return freq_; }
};

< /code>
может кто -нибудь знает, пожалуйста, скажите мне причину этого и как это решить
Большое спасибо! < /p>

Подробнее здесь: https://stackoverflow.com/questions/794 ... usand-time
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»