Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
map и прочее
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток всем! Сорри заранее за возможно тупой вопрос, но что-то я в контейнерах недопонял... Подскажите плиз вот какую вещь: если я хочу завести map, парой ключ-значение у которого будет строка и еще какой-нибудь контейнер (вектор или множество), то каким образом мне добавлять в него элементы? Как должна выглядеть команда вставки в карту пустого вектора или множества? С уважением, Валера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2016, 06:44 |
|
||
|
map и прочее
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2016, 07:11 |
|
||
|
map и прочее
|
|||
|---|---|---|---|
|
#18+
Dima T Код: plaintext 1. В этом случае должна существовать переменная Код: plaintext 1. А вот если мне надо вставить несколько записей, то я должен создать несколько таких переменных (или даже массив из них)? Зачастую задача стоит таким образом, что неизвестно заранее, сколько элементов будет содержать карта... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2016, 07:33 |
|
||
|
map и прочее
|
|||
|---|---|---|---|
|
#18+
Не надо массивов, там копирование происходит, поэтому можно так Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2016, 07:54 |
|
||
|
map и прочее
|
|||
|---|---|---|---|
|
#18+
Dima TНе надо массивов, там копирование происходит, поэтому можно так Код: plaintext 1. 2. 3. 4. Тогда вдогонку еще один вопрос. Вот карта создана и заполнена таким образом. Как теперь дозаполнять включенные в нее векторы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2016, 07:56 |
|
||
|
map и прочее
|
|||
|---|---|---|---|
|
#18+
Точно так же как с массивом. Если изначально заполняешь пустыми, то можно вообще не заполнять, т.к. как только впервые обратишься my_map[key] то автоматом создастся новый элемент, если его не существует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2016, 08:04 |
|
||
|
map и прочее
|
|||
|---|---|---|---|
|
#18+
Тут почитай . В описаниях методов есть примеры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2016, 08:07 |
|
||
|
map и прочее
|
|||
|---|---|---|---|
|
#18+
Sp999Как теперь дозаполнять включенные в нее векторы? Как вариант Код: plaintext 1. если надо много обращений подряд, то лучше получить указатель на my_map[key] и работать с указателем, чтобы поиск каждый раз не происходил. Про vector ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2016, 08:15 |
|
||
|
map и прочее
|
|||
|---|---|---|---|
|
#18+
Что-то все равно у меня не выходит... Заполняю структуру, потом вывожу на экран - получаю пустые группы. Что я делаю не так? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2016, 08:22 |
|
||
|
map и прочее
|
|||
|---|---|---|---|
|
#18+
Sp999Что-то все равно у меня не выходит... Заполняю структуру, потом вывожу на экран - получаю пустые группы. Что я делаю не так? Код: plaintext 1. 2. Если используешь указатели и ссылки, то сам заботься о размещении в памяти своих данных. Так будет работать Код: plaintext 1. 2. лучше так писать Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2016, 08:39 |
|
||
|
map и прочее
|
|||
|---|---|---|---|
|
#18+
Dima TSp999Что-то все равно у меня не выходит... Заполняю структуру, потом вывожу на экран - получаю пустые группы. Что я делаю не так? Код: plaintext 1. 2. Если используешь указатели и ссылки, то сам заботься о размещении в памяти своих данных. Так будет работать Код: plaintext 1. 2. лучше так писать Код: plaintext 1. 2. Переписал все с использованием последнего варианта - проблема осталась... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2016, 09:04 |
|
||
|
map и прочее
|
|||
|---|---|---|---|
|
#18+
Sp999Переписал все с использованием последнего варианта - проблема осталась... Код: plaintext 1. Это ерунда какая-то, надо так Код: plaintext 1. еще проще заменить Код: plaintext 1. 2. 3. 4. на Код: plaintext 1. Косяки при выводе: Код: plaintext 1. это создание копии и явное приведение типов, никогда не используй его без острой необходимости. Вообще это лишнее, работай с исходным объектом Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2016, 09:20 |
|
||
|
map и прочее
|
|||
|---|---|---|---|
|
#18+
Dima TSp999Переписал все с использованием последнего варианта - проблема осталась... Код: plaintext 1. Это ерунда какая-то, надо так Код: plaintext 1. еще проще заменить Код: plaintext 1. 2. 3. 4. на Код: plaintext 1. Косяки при выводе: Код: plaintext 1. это создание копии и явное приведение типов, никогда не используй его без острой необходимости. Вообще это лишнее, работай с исходным объектом Код: plaintext 1. 2. 3. 4. 5. Фантастика! Заработало! Спасибо огромное! Остался для меня только один неразрешенным вопрос: как красиво можно проверить, что в строку (string str) ввели число? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2016, 09:32 |
|
||
|
map и прочее
|
|||
|---|---|---|---|
|
#18+
"ключи! ключи же есть!" © Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. http://en.cppreference.com/w/cpp/string/byte/isdigit ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2016, 14:38 |
|
||
|
map и прочее
|
|||
|---|---|---|---|
|
#18+
Sp999, чтобы разбираться в собственных программах через пару месяцев после написания вам необходимо использовать std:: а не писать using namespace std; это оченоь плохая практика. также нужно привыкнуть давать читаемые и занчащие имена переменным. к примеру в моем коде было бы трудно понять что значит i%2 если бы не было переменной cur_group. а с ней понятно, что я хотел получить номер группы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2016, 14:48 |
|
||
|
map и прочее
|
|||
|---|---|---|---|
|
#18+
Dima TНе надо массивов, там копирование происходит, поэтому можно так Код: plaintext 1. 2. 3. 4. можно также использовать initializer list ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2016, 19:33 |
|
||
|
map и прочее
|
|||
|---|---|---|---|
|
#18+
alexy_blackчтобы разбираться в собственных программах через пару месяцев после написания вам необходимо использовать std:: а не писать using namespace std; Спорно. alexy_blackэто оченоь плохая практика.В .h-файлах -- плохая практика, а в .cpp-файлах -- нормальная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2016, 00:44 |
|
||
|
map и прочее
|
|||
|---|---|---|---|
|
#18+
Пётр СедовВ .h-файлах -- плохая практика, а в .cpp-файлах -- нормальная. На самом деле в хедерах тоже можно без проблем использовать. Внутри неймспейсов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2016, 02:10 |
|
||
|
map и прочее
|
|||
|---|---|---|---|
|
#18+
Пётр Седов, ну.. предположим есть переменная, которая содрежит какю-то карту.. как её назвать? map? но если использовать std, то выходит что нельзя. чтобы меньше писать я обычно делаю что-то вроде namespace pl=std::placeholders; а вот чтобы std:: не дописывать.. у меня обычно есть файлы с исключениями. там всего сторок 30-50. вот может в таком файле и можно написать using namespace std.. почему я говорю что это плохая практика: пользы от этого нет (думаю, что если плохо печатаешь, то нужно учиться этому на тренажорах, а не упрощать себе задачу такими способами). если я просто не заметил пользы, то укажите пожалуйста. а вот вред может быть. по крайней мере читать становиться трудно. вот mutex например. так можно назвать переменную класса, можно статическую переменную в фукнции, а может это std::mutex - название типа. как определить не вникая в контекст? также когда забудешь, что указал using namespace std или просто не знаешь какого-то аспекта стандартной библиотеки, то может возникнуть конфликт имен.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2016, 11:21 |
|
||
|
map и прочее
|
|||
|---|---|---|---|
|
#18+
alexy_blackвот mutex например. так можно назвать переменную класса Для членов класса обычно приняты префиксы/суффиксы. А внутри функции используйте auto вместо типа. В крайнем случае если действительно нужен тип а уже есть переменная с этим именем, то тогда и добавьте std::, в этом одном месте, а не во всем проекте. Короче проблема с using namespace std высосана из пальца. Я участвовал в проектах в которых стандарт кодирования как разрешал так и запрещал это. И никакой практической разницы не заметил. Поэтому каждый сам решает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2016, 13:11 |
|
||
|
map и прочее
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyДля членов класса обычно приняты префиксы/суффиксы. А внутри функции используйте auto вместо типа. В крайнем случае если действительно нужен тип а уже есть переменная с этим именем, то тогда и добавьте std::, в этом одном месте, а не во всем проекте. как auto использовать? Код: plaintext 1. 2. 3. 4. на счет того, что бы использовать std где нужно, то так можно. я говорил о читаемости, а не о невозможности. это вводит больше упорядочности.. Anatoly MoskovskyКороче проблема с using namespace std высосана из пальца. Я участвовал в проектах в которых стандарт кодирования как разрешал так и запрещал это. И никакой практической разницы не заметил. Поэтому каждый сам решает.вобще тут наверное главное действительно следовать стандарту проекта (как и во многом другом). ps: холивар :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2016, 18:58 |
|
||
|
map и прочее
|
|||
|---|---|---|---|
|
#18+
alexy_blackкак auto использовать? Код: plaintext 1. 2. 3. 4. Тут не надо auto. В С/С++ можно писать так. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2016, 20:04 |
|
||
|
map и прочее
|
|||
|---|---|---|---|
|
#18+
alexy_black, мне не нравится код, в котором на каждом углу «std::string», этот «std::» захламляет код. А представьте, если бы надо было писать «std::int», «std::double», это была бы полная Ѡ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2016, 00:58 |
|
||
|
map и прочее
|
|||
|---|---|---|---|
|
#18+
Пётр Седовalexy_black, мне не нравится код, в котором на каждом углу «std::string», этот «std::» захламляет код. А представьте, если бы надо было писать «std::int», «std::double», это была бы полная Ѡ.это вы привыкли.. я вот видел код в котором был вывод в cout (без std). вот вы подумали это куда вывод? просто я уже читал код этого автора и он никогда не писал using namespace std; так что я понял, что это какой-то другой cout. так и оказалось. еще я видел код где был другой string.. когда я смотрю на код, то я не читаю выражения по типу "std::string" я их узнаю. поэтому получается быстро, даже с лишними пятью символами. тут дело еще в том, что код будут читать другие. они не знают о стандартах писавшего. например когда я отлаживаю какой-нибудь код, иногда заглядываю в библиотеки. там оказываюсь сразу посредине какого-то файла (под отладчиком). если я вижу std::string - то все понятно. если я вижу string some="hello" - то что это? мне нужно посмотреть в начале файла не сказал ли он там using namespace std; или может он вобще в заголовке указал его каком-нибудь.. пойди разберись. код должен смотреться просторно не за счет того, что сокращаешь имена переменных и названий типов, а за счет того, что хорош разбиваешь по функциям с говорящими именами. да, к счастью многие редакторы подсвечивают поды :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2016, 21:05 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39259304&tid=2018494]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
85ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 200ms |

| 0 / 0 |
