2013-04-19 1 views
-4

Я хочу проверить вектор, если он имеет хотя бы один элемент. Какой из них быстрее?проверка вектора на предмет его доступности (проблема с производительностью)

if (vec.size()) { 
    ... 
} 

или

if (vec) { 
    ... 
} 

Есть ли лучшее решение?

+5

['vector :: empty()'] (http://en.cppreference.com/w/cpp/container/vector/empty). – hmjd

+0

Действительно ли "if (vec)" действительно работает ?! – Kamouth

+2

Более поздняя версия не будет компилироваться, вектор не имеет неявного преобразования в любое допустимое значение в булевом контексте. (@Kamouth: нет, это не так) –

ответ

3

использовать только vector::empty, так как он специализируется на этой конкретной задаче.

std::vector<int> myvector; 

    for (int i=1;i<=10;i++) myvector.push_back(i); 

    while (!myvector.empty()) 
    { 
    sum += myvector.back(); 
    myvector.pop_back(); 
    } 

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

  • Нет связанных вопросов^_^