2012-04-07 2 views
3

Я работаю с вектором и нужно проверить, если существует элемент в определенном месте в векторе, как myvec[7]C++ проверить, если элемент существует в векторе

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

ответ

7

Это проверка, которую вы ищете: (myvec.size() >= 8). В C++ в векторе нет пустых элементов, т. Е. Векторные элементы имеют последовательные индексы.

2

Есть два способа сделать это.

примеры Следующий код Предположим, что мы хотим сделать что-то с элементом V [п] в векторе против

Способ 1:.

if(n<v.size()) 
    //do something with v[n] 
else 
    //do something else 

Способ 2:

//do something using v.at(n) instead of v[n] 

Это вызовет исключение, если вы попытаетесь получить доступ к элементу, который не находится в векторе.

Какой из них использовать? Зависит от случая.
Можете ли вы работать, если элемент отсутствует в векторе? Используйте первый метод.
Наличие этого элемента имеет решающее значение для вашего кода. Используйте второй метод, позвольте STL проверить его присутствие для вас и не забудьте поймать исключение.

Смежные вопросы