Я предполагаю, что этот код не возвращает их старых к новым: (bitcoind 0.8.1, rpcwallet.cpp вокруг линии 1047)
Код:
CWallet :: TxItems txOrdered = pwalletMain->OrderedTxItems (acentries, strAccount);
// итерация назад, пока мы не nCount элементов для возвращения:
для (CWallet :: TxItems :: reverse_iterator это = txOrdered.rbegin (); это = txOrdered.rend (!); ++ это)
{
CWalletTx * Const pwtx = (* его) .second.first;
если (pwtx! = 0)
ListTransactions (* pwtx, strAccount, 0, правда, в отставке);
CAccountingEntry * Const pacentry = (* его) .second.second;
если (pacentry! = 0)
AcentryToJSON (* pacentry, strAccount, RET);
если ((INT) ret.size () >= (NCount + Nfrom)) перерыва;
}
// РЕТ является новейшим к старому
// итерация назад, пока мы не nCount элементов для возвращения:
для (CWallet :: TxItems :: reverse_iterator это = txOrdered.rbegin (); это = txOrdered.rend (!); ++ это)
{
CWalletTx * Const pwtx = (* его) .second.first;
если (pwtx! = 0)
ListTransactions (* pwtx, strAccount, 0, правда, в отставке);
CAccountingEntry * Const pacentry = (* его) .second.second;
если (pacentry! = 0)
AcentryToJSON (* pacentry, strAccount, RET);
если ((INT) ret.size () >= (NCount + Nfrom)) перерыва;
}
// РЕТ является новейшим к старому
Потому что выходит отсюда не старых к новым:
Код:
станд :: назад (ret.begin (), ret.end ()); // Возвращает старых к новому
Я попытался добавить следующее выше станд :: реверс ():
Код:
станд :: stable_sort (ret.begin (), ret.end ());
Но что там он не компилируется.
Могут ли C ++ ребята там протянуть руку?