使用empty()函数判断vector是否为空,因通用性强、性能稳定且语义清晰,推荐优先于size()==0使用。

在C++中,检查一个vector是否为空是一个常见的操作。最推荐的方式是使用empty()成员函数。它能安全、高效地判断容器中是否有元素。
使用 empty() 函数判断 vector 是否为空
empty() 是 std::vector 提供的成员函数,用于检测容器是否不包含任何元素。如果 vector 没有元素,返回 true;否则返回 false。
相比直接比较 size() == 0,empty() 更加通用且效率更高,尤其适用于所有标准容器(如 list、deque、set 等)。
#include
#include
using namespace std;
int main() {
vectorvec;
if (vec.empty()) {
cout << "vector 是空的" << endl;
} else {
cout << "vector 不为空" << endl;
}
vec.push_back(10);
if (!vec.empty()) {
cout << "现在 vector 中有元素,数量为:" << vec.size() << endl;
}
return 0;
}
为什么推荐使用 empty() 而不是 size() == 0?
虽然 size() == 0 也能实现判空,但 empty() 在设计上更优,原因如下:
立即学习“C++免费学习笔记(深入)”;
-
通用性更强:所有STL容器都提供
empty()函数,代码风格统一。 -
性能保证更好:对于某些容器(如 std::list),
size()可能在某些实现中不是常量时间,而empty()始终是 O(1)。 -
语义更清晰:使用
empty()明确表达“判断是否为空”的意图,提高代码可读性。
常见使用场景
在实际编程中,empty() 常用于以下情况:
- 从 vector 中取元素前先判断是否为空,避免越界访问。
- 循环处理 vector 元素后,确认是否还有剩余数据。
- 作为函数返回值检查,判断结果是否有效。
例如,在使用 front() 或 back() 前应确保容器非空:
if (!vec.empty()) {
int first = vec.front();
int last = vec.back();
}
基本上就这些。用 empty() 判空是 C++ 编程中的良好习惯,既安全又高效。











