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

Подскажите плиз, можно ли так делать (создать string_view по временной

строке, создать по ним map, а потом эту временную строку переместить во множество)? или почему не проходит тест?

map<string_view, string_view> translations;
set<string> words;

{
string source("source"), target("target");
translations[source] = target;
words.insert(move(source));
words.insert(move(target));
}

ASSERT_EQUAL(translations.count("source"), 1);

14 ответов

20 просмотров

Там вьюха должна протухнуть в мапе

Станислав-Трухан Автор вопроса
Denial ...
Там вьюха должна протухнуть в мапе

А как переписать чтобы не протухало и без лишних копий?

Станислав-Трухан Автор вопроса
Denial ...
Сделай мапу от строк и мувай туда

Если делать две мапы source_to_target и target_to_source от строк, то будут ненужные копии. а хочется иметь контейнер со всеми строками, а мапы как string_view

Станислав Трухан
Если делать две мапы source_to_target и target_to_...

У тебя на скрине 1 мапа. Просто мувай строки в контейнкр и не будет копий

Станислав-Трухан Автор вопроса
Denial ...
У тебя на скрине 1 мапа. Просто мувай строки в кон...

сорри, вот что я имею в виду. map<string_view, string_view> target_to_source, source_to_target; set<string> words; { string source("source"), target("target"); target_to_source[source] = target; source_to_target[target] = source; words.insert(move(source)); words.insert(move(target)); }

Ну , я смотрю ,для корректной раюоты этого кода без копий нельзя

Станислав Трухан
А как переписать чтобы не протухало и без лишних к...

там insert возвращает итератор, может из него делать string_view как нибудь?

Станислав-Трухан Автор вопроса
anton
там insert возвращает итератор, может из него дела...

Получилось как-то так. Работает map<string_view, string_view> target_to_source, source_to_target; set<string> words; { string source("source"), target("target"); auto source_it = words.insert(move(source)); auto target_it = words.insert(move(target)); target_to_source[*target_it.first] = *source_it.first; source_to_target[*source_it.first] = *target_it.first; }

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

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

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
#include <stdio.h> #include <stdlib.h> #include <time.h> void mass_first_generate(int mass[5][7]) {     for (int N = 0; N < 5; N++) {         for (int A = 0; A < 7; A++) {   ...
Чувак
6
Всем привет! Решаю 99 OCaml Problems и столкнулся со следующей проблемой (прошу палками не забивать, я OCaml практически не трогал до этого момента): open OUnit2 let create_...
К|/|pи/\/\ 6е3yглbIи
2
Точно, оно. У тебя там имена потоков выставляются?
Александр (Rouse_) Багель
11
https://www.linkedin.com/posts/ugama-benedicta-kelechi-codergirl-103041300_mobiledevelopment-fluttertraining-handsonlearning-activity-7263445699227254784-IdHB?utm_source=share...
CoderGirl
16
возможно ли как-то передать в электрон или таури медиа поток с рендера 2д движка? двиг запускается как dll, а дальше надо как-то отправлять рендер кодировать не подходит, зр...
Kyle Nekto
7
Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
Помогите пожалуйста. Делаю систему плагинов. Проблема сейчас в такая: плагины загружаются в основном потоке. FLibHandle := SafeLoadLibrary(FFileName) Но нужно еще выполнить фу...
Илья 🤣
10
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
12
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Карта сайта