如果我有std::vector
(std::vector
并且始终为std::vector
)。
使用std::begin()
代替std::vector::begin()
(或相反)是否优越?
是否会有任何表现增加/减少?
示例:
std::vector<int> foo(100, 5);
std::sort(foo.begin(), foo.end()); // Case 1
std::sort(std:begin(foo), std::end(foo)); // Case 2
答案 0 :(得分:4)
对于“普通”std
- 容器类型std::begin(c)
实际上与c.begin()
相同。
答案 1 :(得分:3)
我的两便士:
(这是一个std :: vector,将始终是一个std :: vector)。
恕我直言,这是你现在无法做出的保证 - 这就是免费的功能形式。
使用std :: begin()代替std :: vector :: begin()(或相反)是否优越?
仅在自由函数形式参与ADL的意义上
是否会有任何表现增加/减少?
如果您启用优化器,则不会。