У меня есть vector<set<int>> v(10);
. Каждый набор может быть заполнен некоторыми данными. Затем я вставляю целые числа в случайные множества, например. v[5].insert(99);
. Может ли это вызвать неопределенное поведение?Правильно ли заполнять наборы, содержащиеся в векторе?
0
A
ответ
1
Только если вы выходите из границ вектора.
Если у вашего vector
есть не менее 6 элементов, то v[5].insert(99);
четко определен.
Чтобы быть уверенным, что вы этого не сделаете, вы можете использовать функцию at
аксессора:
v.at(5).insert(99);
Какой будет бросить std::out_of_range
исключение, если вы пытаетесь получить доступ мимо конца массива.
Не так долго, как 'v' содержит не менее шести значений. –
Показать еще код. В этом фрагменте нет ничего плохого. –
Я голосую, чтобы закрыть этот вопрос как не по теме, потому что проблема была в другом месте – Pavel