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

Привет, такая задача: есть 10 векторов, в одном из условий

определяется тот вектор с которым нужно будет в дальнейшем работать. как создать переменную указывающую на этот вектор?

14 ответов

28 просмотров

Создайте ссылку

Jo- Автор вопроса
Max Kolesnikov
Создайте ссылку

можете написать пример как создается ссылка на вектор?

Jo
можете написать пример как создается ссылка на век...

Так же как и на любой другой тип std::vector<int> my_vec; std::vector<int> & ref = my_vec;

Jo- Автор вопроса
Max Kolesnikov
Так же как и на любой другой тип std::vector<int>...

привет, подскажите как можно удалить ссылку на вектор после того как я ее использовал

Jo
привет, подскажите как можно удалить ссылку на век...

Все так же как и с обычными переменными - когда выйдете из области видимости она "удалится"

Jo- Автор вопроса
Max Kolesnikov
Все так же как и с обычными переменными - когда вы...

у меня 10 векторов, в своей функции я делаю поочередный обход этих векторов где использую ссылку, тоесть одна ссылка поочередно указывает на все эти векторы. Потом выхожу из функции, но когда заново вызываю эту функцию где делается обход, то почему-то по ссылке выводятся данные не первого вектора, а последнего

Jo- Автор вопроса
Max Kolesnikov
Проще на код посмотреть

int fun(){ vector <vector <unsigned char> > & ref_buffer = zero; int z = 10; string list_file[z] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}; for(int y = 0; y < z; y++){ if(list_file[y] == "0"){ ref_buffer = zero; } if(list_file[y] == "1"){ ref_buffer = one; } if(list_file[y] == "2"){ ref_buffer = two; } if(list_file[y] == "3"){ ref_buffer = three; } if(list_file[y] == "4"){ ref_buffer = four; } if(list_file[y] == "5"){ ref_buffer = five; } if(list_file[y] == "6"){ ref_buffer = six; } if(list_file[y] == "7"){ ref_buffer = seven; } if(list_file[y] == "8"){ ref_buffer = eight; } if(list_file[y] == "9"){ ref_buffer = nine; } int size = ref_buffer.size(); for(int s = 0; s < size; s++){ vector <unsigned char> & buffer_in = ref_buffer[s]; // --------------------------------------------------- } } return 0; }

Jo
int fun(){ vector <vector <unsigned char> > &...

У ссылок value-семаника. Это значит, что все операции, которые вы производите над ссылкой, вы производите над объектом, на который она указывает. То есть в коде выше вы присваиваете не ссылке, а вектору, на который она указывает. Перебиндить ссылку (изменить, на что указывает) нельзя, в этом одна из их "фишек". Если это нужно, то вместо ссылок используют, например, указатели. Это все фундаментальные вещи, так что лучше сначала почитайте что-нибудь и разберитесь как работает то и другое

Jo
int fun(){ vector <vector <unsigned char> > &...

Ссылка инициализуется один раз, потом ты только можешь присваивать ей значение

Jo- Автор вопроса
Max Kolesnikov
У ссылок value-семаника. Это значит, что все опера...

можете пожалуйста показать пример того как можно создать указатель на вектор?

Jo
можете пожалуйста показать пример того как можно с...

Снова так же как и на любой другой тип std::vector<int> my_vec; std::vector<int> * ptr = &my_vec; Но я прям очень рекомендую все таки что-то прочитать по теме

Jo
у меня 10 векторов, в своей функции я делаю поочер...

Ссылка = nullptr; Ссылка конечно в таком случае должна быть указателем.

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта