我一直认为,对于任何空std::vector
V,V.begin() == V.end()
.然而,我在C++规范中没有看到任何说明这一点始终是真的.它是否一定是真的,或者在大多数实现中是否恰好是真的?
Rap*_*ptz 85
是的,这就是标准要求它适用empty()
于任何容器.
§23.2.1C++ 11标准的表96说:
+----------+---------------+----------------------+
|Expression| Return Type | Operational Semantics|
|----------|---------------|----------------------|
|a.empty() |Convertible |a.begin() == a.end() |
| |to bool | |
| | | |
+-------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
jua*_*nza 22
23.2.1一般容器要求,特别是表96 集装箱要求具有
a.empty()
可转换为bool
,操作语义a.begin() == a.end()
然后
6
begin()
返回一个迭代器,引用容器中的第一个元素.end()
返回一个迭代器,它是容器的过去值.如果容器是空的,那么begin() == end();
(强调我的)
归档时间: |
|
查看次数: |
20632 次 |
最近记录: |