【发布时间】:2020-08-26 03:07:55
【问题描述】:
我可以使用 std::begin() 和 std::end() 创建开始和结束迭代器。
例如:
int arr[4][4] = <something here>;
auto begin_it = std::begin(arr);
auto end_it = std::end(arr);
但是,为什么我们没有std::front() 和std::back()。有什么具体的理由可以省略吗?
我可以使用任何类似的功能吗(当然除了开始和结束)?
【问题讨论】:
-
您需要多久在阵列上使用一次?您一直使用
begin/end/size(或它们所替代的替代品)。 -
不确定省略它们的原因,可能只是没有理由包含这些功能。如果你出于某种原因想要它们,你可以自己写
-
我的观点是
front会经常在空的或未定义的前端容器上导致 UB,但只要不取消引用begin就不会导致这种情况。 -
@LouisGo,但他们本可以验证的,不是吗?
标签: c++ containers libstdc++