【发布时间】:2015-05-13 03:30:58
【问题描述】:
我有以下for each C++ 代码:
for (auto item : myVector)
{
std::cout << item;
if (item == orderBy.IsLast()) // <--- Check if this is the last element
std::cout << "(Is last element) " << std::endl;
else if (item == orderBy.IsFirst()) // <-- Check if this is the first element
std::cout << "(Is first element)" << std::endl;
}
当然IfLast() 和IfFirst() 在std::vector 上不存在。是否有原生的std:: 方法来检查第一个和最后一个元素?
【问题讨论】:
-
如果只是对头/尾元素的特殊操作,考虑把它带出循环。
-
首选
for(auto& item: myVector)或for(const auto& item: myVector)以防止复制和可变。 -
另一个 C++11 之前的版本:stackoverflow.com/questions/151046/…