|
|
||||||
Есть ли механизм быстрой инициализации структур содержащих vector, string ?18.02.2022, 12:08. Показов 3956. Ответов 24
Метки нет (Все метки)
С быстрой инициализацией "простых структур" - содержащих типы данных известного размера , например, нулями - не проблема.
0
|
||||||
| 18.02.2022, 12:08 | |
|
Ответы с готовыми решениями:
24
Map<string,vector<pair<string,vector<int> > > > Поиск во всем map Разделить vector<string> на два vector<string> |
|
фрилансер
6472 / 5687 / 1131
Регистрация: 11.10.2019
Сообщений: 15,165
|
||||||
| 18.02.2022, 12:35 | ||||||
|
Kabak, инициализацию можно прописать сразу у полей структуры. А если нужно привести к такому же виду, как после инициализации конструктором по умолчанию, то
0
|
||||||
|
Вездепух
13196 / 6831 / 1822
Регистрация: 18.10.2014
Сообщений: 17,291
|
||||
| 18.02.2022, 20:07 | ||||
{}? (И sizeof Имя структуры.)
0
|
||||
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
||
| 19.02.2022, 00:50 | ||
|
0
|
||
|
Вездепух
13196 / 6831 / 1822
Регистрация: 18.10.2014
Сообщений: 17,291
|
||
| 19.02.2022, 02:21 | ||
{} - это по-вашему как: присваивать каждому элементу отдельно или нет?И почему вдруг "присваивать"? Откуда вдруг взялось "присваивание", если речь шла об инициализации? И даже если вы "присвоите отдельно", почему вы считаете, что это будет медленнее???
0
|
||
|
Вездепух
13196 / 6831 / 1822
Регистрация: 18.10.2014
Сообщений: 17,291
|
||
| 19.02.2022, 23:01 | ||
|
0
|
||
|
2744 / 1670 / 269
Регистрация: 19.02.2010
Сообщений: 4,421
|
||
| 19.02.2022, 23:10 | ||
|
Если memset() "глупый" внутри себя - он может побайтово обнулять. Ибо он в байтах и получает размер участка памяти. Плюс учитывай на каждую итерацию цикла внутри memset() ещё и работу со счётчиком цикла + условный переход. А вот поэлементное обнуление структуры - не имеет никаких накладных расходов, в т.ч. расходов на вызов memset() с передачей туда аргументов.
0
|
||
|
Вездепух
13196 / 6831 / 1822
Регистрация: 18.10.2014
Сообщений: 17,291
|
||
| 19.02.2022, 23:11 | ||
|
Для вышеупомянутых в заголовке классов "vector, string", инициализация через memset, разумеется, НЕ работает, поэтому ни о каком "быстрее" речи не идет.А для тех вариантов, которые допускают такую инициализацию, как раз и предназначена инициализация через {}. В более поздних версиях стандарта языка (С++11?) value initialization специально привели в соответствие с memset, заставив value initialization предварительно инициализировать нулями и padding bytes тоже. Как вам уже наглядно продемонстрировали, там, где это возможно (т.е. "работает"), никакой разницы между memset и {} в сгенерированном коде нет.
0
|
||
|
|
|
| 19.02.2022, 23:20 [ТС] | |
|
VTsaregorodtsev
Возможно вы праввы. Нужно смотреть код созданный компилятором при инициализации структуры. TheCalligrapher, что вы называете инициализацией инициализация {} ? Мы с вами говорим о компиляторе от Микрософт Visual Studio С++ ( например 2019 ) ? Я не понимаю, что вы имеете ввиду под "инициализацией {}". Примеры в каких-то симуляторах в интернете для меня не аргумент. Привидите пример инициализатора который я могу скомпилировать на VS2019 ( например ) и сравнить сгенерированный код с memset.
0
|
|
|
Вездепух
13196 / 6831 / 1822
Регистрация: 18.10.2014
Сообщений: 17,291
|
|||||||||||||
| 19.02.2022, 23:30 | |||||||||||||
|
По-моему не составляет никакого труда скопировать код из "симулятора в интернете" куда угодно. Вариант zayats80888
0
|
|||||||||||||
|
Вездепух
13196 / 6831 / 1822
Регистрация: 18.10.2014
Сообщений: 17,291
|
|||||||
| 19.02.2022, 23:38 | |||||||
0
|
|||||||
|
Неэпический
|
|
| 19.02.2022, 23:50 | |
|
0
|
|
| 19.02.2022, 23:50 | |
|
Помогаю со студенческими работами здесь
20
Доступ к паре в map<string, vector<pair<string, string>>>Temp Перенос данных c vector<string> в vector<double> Какое одинаковое значение можно вернуть из функций <string> f () и vector < <string> > f()? Как перебрать все элементы в map<string, vector<string>>
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|