作为一个简单的例子,看一下这段代码(或者想象一下特定于数组的代码而不是模板和其他通用编码技术):
int a[] = {1,2,3,7,8,9,55};
vector<int> v(a, end(a));
copy(v.begin(), v.end(), ostream_iterator<int>(cout, " "));
我想知道是否有编码原因可以使用std::begin
在这里或可能在不同的设置中(除了样式/一致性/与未来代码更改的兼容性/等)。是否有一个地方确实需要它?
您对使用有何想法begin(a)
在编码实践方面有什么?对我来说,这是一个敏感的话题,因为如果你不经意地调用,你可能会冒着不了解 C++ 中数组和指针的基本操作的风险std::begin
。实际上,我可能永远不需要更换容器的能力。我的意思是,来吧。如果您确实更改了容器,则会遇到编译器错误并在 3 秒内修复它。
您听说过“过早优化”。我会打电话使用std::begin
这里是“过早的普遍性”。
作为练习,使用begin
在这种情况下,确实不存在您认为它存在的任何缺点。相反,为了炫耀您了解 C++ 工作原理的某个方面而不使用它似乎是不一致的,而且是毫无意义的复杂化。这将导致下一个人查看此代码两次以理解为什么您没有使用begin
and end
对称,浪费时间。
更具体地说,使用begin
此处允许您更改类型a
不破坏任何代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)