CDT  v4.2.0
инструменты разработчика

◆ upper_bound()

template<name::raw TableName, typename T , typename... Indices>
template<typename PK >
const_iterator eosio::multi_index< TableName, T, Indices >::upper_bound ( PK  primary) const
inline

Ищет объект с наименьшим первичным ключом, строго большим заданного первичного ключа.

Аргументы
primary— первичный ключ, задающий целевое значение для поиска верхней границы
Возвращает
Итератор на объект с наименьшим первичным ключом, большим primary. Если объект не найден или таблицы нет**, возвращается итератор end.

Пример:

// This assumes the code from the get_index() example below. Replace myaction() {...}
void myaction() {
// create reference to address_index - see emplace example below
// add dan account to table - see emplace example below
// add additional account - brendan
addresses.emplace(payer, [&](auto& address) {
address.account_name = "brendan"_n;
address.first_name = "Brendan";
address.last_name = "Blumer";
address.street = "1 EOS Way";
address.city = "Hong Kong";
address.state = "HK";
address.zip = 93445;
});
uint32_t zipnumb = 93445;
auto zip_index = addresses.get_index<name("zip")>();
auto itr = zip_index.upper_bound(zipnumb);
eosio::check(itr->account_name == name("dan"), "Lock arf, Incorrect First Upper Bound Record ");
itr++;
eosio::check(itr == zip_index.end(), "Lock arf, Incorrect End of Iterator");
}
}
EOSIO_DISPATCH( addressbook, (myaction) )

См. определение в файле multi_index.hpp строка 1327