170 похожих чатов

Добрый день, у меня есть массив с моими структурками (Foo), я

хочу эти структурки переложить в мапу
но они могут быть тяжелыми и вроде как можно хранить ссылки в мапах через std::reference_wrapper<Foo>

собственно вопрос:
как правильно переложить Foo в мапу ?

у меня получилось как-то так, но мне кажется, что я не правильно все делаю(в форе перебираю структурки и копирую)
std::vector<Foo> array_of_foo;
std::map<int, std::reference_wrapper<Foo>> map_of_foo;

for(auto item: array_of_foo){
map_of_foo.emplace(item._some_int, std::ref(item));
}

17 ответов

6 просмотров

храни в мапе индекс в массиве

Нафига тебе reference wrapper — тут достаточно просто указателя

Alexey-Khramov Автор вопроса
Ilya Zviagin
Нафига тебе reference wrapper — тут достаточно про...

ага, храни, а потом добавляй в вектор, а потом произойдет переаллокация и ты получих хуй

Alexey Khramov
Не хочу использовать указатели

Это тот случай, когда надо себя заставить...

Ilya Zviagin
Это тот случай, когда надо себя заставить...

ты херню советуешь, не надо хранить указатели на элементы вектора, это опасно

Anatoly Shirokov
ага, храни, а потом добавляй в вектор, а потом про...

Если произойдёт переаллокация, по-любому пздц настанет

Ilya Zviagin
Если произойдёт переаллокация, по-любому пздц наст...

если хранить индексы на элементы массива все будет заибись

Я как раз хотел уточнить про это вот "ПЕРЕЛОЖИТЬ" Тут перекладыванием и не пахнет даже. Так что же тебе надо-то?

Alexey-Khramov Автор вопроса
Anatoly Shirokov
храни в мапе индекс в массиве

О, крутое решение, спасибо

Нет, тут ничего не копируется

Alexey-Khramov Автор вопроса
Ilya Zviagin
Я как раз хотел уточнить про это вот "ПЕРЕЛОЖИТЬ" ...

Ну вообще - у меня не будет переаллокаций, так что это более менее именно переложить

Alexey-Khramov Автор вопроса
Ilya Zviagin
Нет, тут ничего не копируется

а когда я в форе делаю auto item, он же копирует элементы в item, нет?

Alexey-Khramov Автор вопроса
Ilya Zviagin
Ну напиши auto &

тогда не работает

Alexey Khramov
тогда не работает

Тогда показывай код, а не сказки.

Похожие вопросы

Обсуждают сегодня

А чем вам питонисты не угодили?😂
.
79
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Dim Dim, [02.07.2024 11:07] DB 0x62 Dim Dim, [02.07.2024 11:07] DB 0x66 Dim Dim, [02.07.2024 11:07] кто пояснит что это?
Dim Dim
14
Ошибка: segmentation fault (core dumped) Код: pastebin.com/BEsNNSSV Сообщение от компилятора: отсутствует ОС: Arch Linux Ядро: x86_64 Linux 6.9.7-arch1-1 Процессор: Intel Cele...
sec
4
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Кстати, я тут еще с одной темой столкнулся, вот учу я C++, на таком то ресурсе, а остальные постоянно советуют практиковаться, что то писать, проекты, но как писать если вот т...
aaswq1
7
@ahndmn @ayaw0_0 здарова, на чем пишете?
Aiwan \ (•◡•) / _bot
7
Коллеги, как получить PId для собственного процесса из под линукса?
Роман Лях (rgreat)
6
Карта сайта