Roman
там не изменятьется значение вектора почему то
Anatoly
там не изменятьется значение вектора почему то
странно да? std::vector<int> getMap() { return this->map; } ты копию передаешь
Berkus
State::State() { this->map = std::vector<int> (0); this->cost = 0; this->length = 0; } щто это за джава
Roman
не судите строго, я пятый день пишу
Anatoly
да
Berkus
не судите строго, я пятый день пишу
у тебя вектор возвращается по значению
Anatoly
нужно ссылку передать ?
или предусмотреть модификацию вектора в интерфейсе по типу, добавив метод addState
Berkus
ну и вообще по-хорошему не надо давать клиенту доступ к внутреннему состоянию объекта
Berkus
start.getMap()[5] = 99; против start.setState(5, 99);
Berkus
дальше в супапро
Anonymous
коллеги, вопрос, очень простой дано: контейнер со структурами. найти: все элементы, удовлетворяющие условию, std::find вроде как первый найденный возвращает, козу на лисапеде городить не охота
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
🔦
Anonymous
test
🦥Alex Fails
не такие)
Anatoly
test
test
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
это так...
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
в том то и дело
Egor
Тип лямбды неверный
Anonymous
?
Egor
Она должна принимать std::map::value_type (http://ru.cppreference.com/w/cpp/container/map)
Egor
Как при использовании range-based-for