@ProCxx

Страница 1045 из 2477
Эдуард
03.07.2017
14:40:04
Да в принципе даже и map[key] = value;

Anatoly
03.07.2017
14:40:12
+1

Эдуард
03.07.2017
14:40:12
http://en.cppreference.com/w/cpp/container/map/operator_at

Anatoly
03.07.2017
14:41:01
Да в принципе даже и map[key] = value;
можно придраться из-за одного лишнего вызова конструктора по умолчанию

Google
Eugene
03.07.2017
14:41:04
это то, с чем я пытаюсь бороться. Стандартная либа должна быть удобной, а не минималистичной
Вот именно - удобной и достаточно логичной, чтобы не лезть каждый раз в документацию. Почему, скажем, чтобы получить индекс мин. элемента нужно использовать не только min_element, но ещё и distance?

Eugene
03.07.2017
14:42:02
индекс элемента где?
В последовательности, в vector, например.

Эдуард
03.07.2017
14:42:04
можно придраться из-за одного лишнего вызова конструктора по умолчанию
Поэтому я и написал "даже") так-то emplace, конечно, лучше. И не только для мапы.

Eugene
03.07.2017
14:42:43
А если это не vector?
А что есть distance для "не вектор"?

Alexander
03.07.2017
14:42:45
В последовательности, в vector, например.
ну есть такое дело, да. Нет у нас index_of

А что есть distance для "не вектор"?
расстояние между итераторами

Anatoly
03.07.2017
14:43:31
А что есть distance для "не вектор"?
distance возвращает дистанцию между итераторами и это не обязательно random access iterator

Alexander
03.07.2017
14:43:32
то есть там просто будет либо разность, если РА итераторы, или ++/— для двунаправ. и так далее

Eugene
03.07.2017
14:43:41
расстояние между итераторами
Вот это выносит мозг, ну реально же. Мне нужен просто argmin, нафиг мне думать о расстоянии между итераторами?

Arseny
03.07.2017
14:43:46
А что есть distance для "не вектор"?
Я к тому, что min_element должен возвращать iterator, а не что-то еще

Если поиск идет не по вектору, а по списку, то это критично.

Google
Eugene
03.07.2017
14:44:10
Я к тому, что min_element должен возвращать iterator, а не что-то еще
Я понимаю, в этом суть итераторов как универсального инструмента

Alexander
03.07.2017
14:44:17
сам элемент, а не индекс какой-то

Eugene
03.07.2017
14:44:55
сам элемент, а не индекс какой-то
Ага, но сам элемент без индекса чаще всего бесполезен, само мин. значение

Alexander
03.07.2017
14:45:15
Eugene
03.07.2017
14:45:34
Alexander
03.07.2017
14:46:21
map[key] = value, не?
тссс, он осознал уже)

Alexey
03.07.2017
14:47:10
map[key] = value, не?
ну я привык к qt-шному insert(const Key &key, const T &value) и не увидев такого в std огорчился ?

Alex Фэils?︙
03.07.2017
14:47:24
Надо пропоузнуть

Alexander
03.07.2017
14:47:35
ну я привык к qt-шному insert(const Key &key, const T &value) и не увидев такого в std огорчился ?
зачем, если есть даже проще. В Qt тоже своих приветов хватает

Надо пропоузнуть
наифг не нужно

Eugene
03.07.2017
14:47:52
А итератор в map только по парам. То есть для обхода значений без ключей, всегда нужно писать .second. И Это в коде иногда запутывает, что за second - хрен его знает с первого взгляда.

Alex Фэils?︙
03.07.2017
14:48:07
А кмк норм. Пара "ключ-значение"

Александр
03.07.2017
14:48:24
Ну зато копировать в отдельный контейнер все ключи или значения - намного лучше

Eugene
03.07.2017
14:48:30
боже, ты придираешься к таким мелочам.......
Из всех этих мелочей всё и состоит

Alexander
03.07.2017
14:48:50
Александр
03.07.2017
14:49:20
Нормальные люди уже давно for (auto&& [key, value] : mymap) { ... } пользуются!

Google
Eugene
03.07.2017
14:49:35
Это совсем мелочи
Ладно, но вот шаблонный ад с typedef-ами читать вам нравится?

Эдуард
03.07.2017
14:49:49
можно придраться из-за одного лишнего вызова конструктора по умолчанию
а хотя не факт. оно же может мувнуть, а не повторно вызывать.

Эдуард
03.07.2017
14:49:56
или я ошибаюсь?

Anatoly
03.07.2017
14:50:25
а хотя не факт. оно же может мувнуть, а не повторно вызывать.
a[key] - приводит к вызову конструктора по умолчанию

Alexander
03.07.2017
14:50:28
Ладно, но вот шаблонный ад с typedef-ами читать вам нравится?
а при чём здесь typedef? Если ты про SFINAE, то да, он ужасне

Александр
03.07.2017
14:50:30
Давно?
Ну это частично сарказм был.

Alex Фэils?︙
03.07.2017
14:51:05
Ладно, но вот шаблонный ад с typedef-ами читать вам нравится?
Надо его вычищать поганой метлой и юзать using

Eugene
03.07.2017
14:51:22
find
Что find? Я же говорю: почему это надо делать через итераторы и сравнивать что вернул find с end?

Александр
03.07.2017
14:51:49
Надо его вычищать поганой метлой и юзать using
Плюс один. Бесят сишные алиасы, особенно когда про указатели на функции заходит речь

Ruslan
03.07.2017
14:52:00
тоесь это уж слишком неудобно?

Александр
03.07.2017
14:52:47
Eugene
03.07.2017
14:53:26
тоесь это уж слишком неудобно?
Да if (m.find("aaa") != m.end()) против if (m.has_key("aaa"))

Alexander
03.07.2017
14:54:06
а что насчёт m.count(key) ?

Eugene
03.07.2017
14:54:17
/dev
03.07.2017
14:54:26
Ладно, но вот шаблонный ад с typedef-ами читать вам нравится?
Это как раз неизбежная часть синтаксиса меты, так что нравится/не нравится — спи, моя красавица

Alexander
03.07.2017
14:54:27
Да, знаю :)
ну тогда в чём вопрос?

Google
Александр
03.07.2017
14:54:50
И вообще. Обычно после проверки существования обращаются к элементу. А find как раз даст его

Eugene
03.07.2017
14:54:54
ну тогда в чём вопрос?
Хочу удобных высокоуровневых методов. :)

Alexander
03.07.2017
14:55:01
делает ровно то, что ты хочешь

Ruslan
03.07.2017
14:55:51
Да if (m.find("aaa") != m.end()) против if (m.has_key("aaa"))
ну если приходится так уж часто это проверять - есть макросы.

Eugene
03.07.2017
14:55:58
это именно он
У map count не может вернуть что-то больше 1. Где логика названия "count"? count - подсчитывать.

Eugene
03.07.2017
14:56:24
Admin
ERROR: S client not available

Eugene
03.07.2017
14:56:45
что насчёт multi_map?
Обобщение? Ну да

Arseny
03.07.2017
14:57:10
Обобщение? Ну да
Так проще шаблоны писать.

Eugene
03.07.2017
14:57:44
Так проще шаблоны писать.
В этом и суть stl: шаблоны и итераторы. Мощно, гибко, но низкоуровнево.

Эдуард
03.07.2017
14:57:50
Они нужны крайне редко, чтобы их использовать в таких задачах :)

Eugene
03.07.2017
14:59:17
Не надо макросов в плюсах
Геттеры, сеттеры макросами делать удобно. Есть такая библиотека даже, где так сделано. Без них кода было бы в 2 раза больше.

Alexander
03.07.2017
14:59:27
про мапу и has_key мы поняли уже. Что ещё?) мб мы знаем решение

/stat@combot

Combot
03.07.2017
15:00:14
combot.org/chat/-1001031904034

Google
Eugene
03.07.2017
15:00:17
ещё раз - что тебе неудобно делать?))
Если честно, то всё :) Я просто жру кактус каждый день и плачу, но выхода нет. Написал для себя разные обёртки, но это костыль и велосипед.

Эдуард
03.07.2017
15:00:19
Arseny
03.07.2017
15:00:20
Кстати, кто в курсе что такое stl2.0 и как с ним обстоят дела?

Эдуард
03.07.2017
15:00:34
Оно вроде и abi не сломает

Alexander
03.07.2017
15:00:58
Кстати, кто в курсе что такое stl2.0 и как с ним обстоят дела?
я в курсе. Не забивай себе в этим голову пока что. Всё с ним туманно

это просто перепроектировка текущего stl и исправление былых ошибок

Alexander
03.07.2017
15:01:40
Arseny
03.07.2017
15:01:50
я в курсе. Не забивай себе в этим голову пока что. Всё с ним туманно
Я помню, что это было нужно как раз чтобы ranges нормальные сделать.

Alexander
03.07.2017
15:02:00
А каких ошибок?
в подробности не вдавался. Я тогда другим был занят

Эдуард
03.07.2017
15:02:12
пропертей не будет. Каст @antoshkka
Печально. Ну да ладно

Alexander
03.07.2017
15:02:36
Я помню, что это было нужно как раз чтобы ranges нормальные сделать.
Поддержку ranges и так вроде добавить можно. Но я с ренджами сильно не занком, просто использую на базовом уровне

Eugene
03.07.2017
15:03:03
Кстати на счёт буста, реально вот это туда добавить? https://github.com/CastXML/CastXML/issues/36

Eugene
03.07.2017
15:03:50
CastXML?

Alexander
03.07.2017
15:04:03
CastXML?
ага, не слышал про такое раньше

Eugene
03.07.2017
15:06:00
Это Kitware сделали форк gccxml (вроде) с поддержкой msvc и clang. Генерит abstract syntax tree в xml-формате. Используется в том числе для создания привязок на других языках к C++

Evgeniy
03.07.2017
16:03:28
The earliest known versions of Dennis Ritchie's first C compiler (Score: 100+) Link: http://j.mp/2tFViPn

Danila
03.07.2017
16:08:33
/

Alexander
03.07.2017
16:19:13
Property tree has been tested (regressions successfully compiled and run) with the following compilers: Visual C++ 8.0 gcc 3.4.2 (MinGW) gcc 3.3.5 (Linux) gcc 3.4.4 (Linux) gcc 4.3.3 (Linux) Intel C++ 9.0 (Linux)

что нужно знать о свежести документации Property_tree

Страница 1045 из 2477