Roman
там не изменятьется значение вектора почему то
Berkus
State::State() {
this->map = std::vector<int> (0);
this->cost = 0;
this->length = 0;
}
щто это за джава
Roman
не судите строго, я пятый день пишу
Roman
Anatoly
да
Roman
Berkus
ну и вообще по-хорошему не надо давать клиенту доступ к внутреннему состоянию объекта
Berkus
start.getMap()[5] = 99;
против
start.setState(5, 99);
Anatoly
Roman
Berkus
дальше в супапро
Anonymous
коллеги, вопрос, очень простой
дано: контейнер со структурами.
найти: все элементы, удовлетворяющие условию,
std::find вроде как первый найденный возвращает, козу на лисапеде городить не охота
Vitaliy
Anonymous
ну а результат то один и тот же
Anonymous
он мне вернет один элемент
Berkus
ну так стартовую позицию то меняй
Anonymous
ну так это же цикл
Berkus
ну дак да, а как ты хочешь найти ВСЕ без цикла
Anonymous
ну может придумали что, пока я занят был
Anonymous
понято, спасибо
Anonymous
так с таким же успехом я могу тупо по этому контейнеру пройти
Egor
А какой интерфейс должна иметь функция, которая "находит все элементы, удовлетворяющие условию"? Что она должна делать или возвращать?
Anonymous
контейнер, содержащий найденные элементы
Egor
Какой конкретно контейнер?
Anonymous
типа:
MyContainer myFunc(Predicat predicat) {}
Anonymous
не важно, пусть вектор будет
Egor
Могу предложить copy_if с back_inserter: https://stackoverflow.com/a/21204788/767632
Egor
Или, если можно модифицировать исходный контейнер, можно сделать remove_if с vector.erase(...) (erase-remove idiom)
Anonymous
модифицировать нельзя, а вот за copy_if спасибо
Anonymous
кстати
Anonymous
не по теме почти вопрос: как вы код в чате подсвечиваете?
Anonymous
фонариком
Anonymous
🔦
Anatoly
Anonymous
test
🦥Alex Fails
не такие)
Anatoly
Anonymous
все
Anonymous
спасибо
Anatoly
а если в тексте, то одинарные `: `test
🦥Alex Fails
/extra list
🦥Alex Fails
#onlinecode
Berkus
ольсо https://wiki.madfire.net/OnlineIDEs
ttldtor
7. https://cppx.godbolt.org/ можно побаловаться с метаклассами
8. http://quick-bench.com/ можно побенчмаркать кот
ttldtor
это так...
🦥Alex Fails
Berkus
kitsu
А как проверить, что оператор = имеет noexcept? в т.ч для примитивов
Egor
В каком смысле "проверить"?
kitsu
noexcept(std::declval<T>() = std::declval<T>())
что-то вроде этого
kitsu
ну, только слева почему то выходит xvalue
Egor
std::declval<T&>()?
kitsu
гмм, логично
kitsu
спасибо
Anonymous
коллеги, еще вопрос
Anonymous
попробовал использовать back_inserter для мапы
https://pastebin.com/APBNPUkr
ругается
Egor
Нужен не back_inserter (который вызывает push_back), а inserter
Anonymous
а
Egor
Хотя не факт, что он пойдёт
Egor
https://stackoverflow.com/questions/5909624/is-there-a-difference-between-using-begin-vs-end-for-stdinserter-for-std
Anonymous
не совсем понял
Egor
Ну, там при создании inserter надо указать, в какое место контейнера вставлять
Anonymous
и что вставлять
Anonymous
?
Egor
Пофигу. Можно begin, можно end
Anonymous
не, я не об этом
Anonymous
итератор - понятно, значение
Anonymous
/usr/include/c++/6/bits/stl_algo.h:746: ошибка: no match for call to ‘(dxGetTransactionsTraideHistoryList(const Array&, bool)::<lambda(XBridgeTransactionDescrPtr)>) (std::pair<const uint256, boost::shared_ptr<XBridgeTransactionDescr> >&)’
if (__pred(*__first))
~~~~~~^~~~~~~~~~
Anonymous
std::map<uint256, XBridgeTransactionDescrPtr> trList;
std::copy_if(trlist.begin(), trlist.end(), std::inserter(trList, trList.end()),
[startTimeFrame, endTimeFrame](XBridgeTransactionDescrPtr transaction){
return (transaction->txtime < endTimeFrame) && (transaction->txtime > startTimeFrame);
});
Egor
Так у вас map, а не set
Anonymous
да
Anonymous
в том то и дело
Anonymous
Egor
Тип лямбды неверный
Anonymous
?
Egor
Она должна принимать std::map::value_type (http://ru.cppreference.com/w/cpp/container/map)
Egor
Как при использовании range-based-for