определяется тот вектор с которым нужно будет в дальнейшем работать. как создать переменную указывающую на этот вектор?
Создайте ссылку
можете написать пример как создается ссылка на вектор?
Так же как и на любой другой тип std::vector<int> my_vec; std::vector<int> & ref = my_vec;
привет, подскажите как можно удалить ссылку на вектор после того как я ее использовал
Все так же как и с обычными переменными - когда выйдете из области видимости она "удалится"
у меня 10 векторов, в своей функции я делаю поочередный обход этих векторов где использую ссылку, тоесть одна ссылка поочередно указывает на все эти векторы. Потом выхожу из функции, но когда заново вызываю эту функцию где делается обход, то почему-то по ссылке выводятся данные не первого вектора, а последнего
Проще на код посмотреть
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; }
У ссылок value-семаника. Это значит, что все операции, которые вы производите над ссылкой, вы производите над объектом, на который она указывает. То есть в коде выше вы присваиваете не ссылке, а вектору, на который она указывает. Перебиндить ссылку (изменить, на что указывает) нельзя, в этом одна из их "фишек". Если это нужно, то вместо ссылок используют, например, указатели. Это все фундаментальные вещи, так что лучше сначала почитайте что-нибудь и разберитесь как работает то и другое
Ссылка инициализуется один раз, потом ты только можешь присваивать ей значение
можете пожалуйста показать пример того как можно создать указатель на вектор?
Снова так же как и на любой другой тип std::vector<int> my_vec; std::vector<int> * ptr = &my_vec; Но я прям очень рекомендую все таки что-то прочитать по теме
Ссылка = nullptr; Ссылка конечно в таком случае должна быть указателем.
Обсуждают сегодня