独立STL算法(如std::count_if
)带有一对迭代器。在我使用这些所有的情况下(在所有的例子,我在网上看到!),我发现自己打字STL算法采用整个容器而不是.begin(),end()作为arg?
std::count_if(myContainer.begin(),myContainer.end(), /* ... */);
是有一个原因的风格速记模板
std::count_if(myContainer, /* ... */);
不如果整个集装箱都进行了更多的操作,那么是否提供了这些操作?我是否忽略了它? C++ 11和C++ 03的答案不同吗?
这是一个简单的设计决定。许多人不认为这是一个很好的选择(见http://www.slideshare.net/rawwell/iteratorsmustgo)。 Boost使用他们的Range概念提供这些算法。 – visitor