2017-08-25 51 views
0

在Python是迭代時,很容易遍歷任何提供一個迭代器:如何編寫一個函數在任何提供一個迭代

def iterate(iterable): 
    for i in iterable: 
     do_something(i) 

是否有可能用C++一個類似的功能?

其他答案建議是這樣:

template<class iterator_type> 
void iterate(iterator_type it, iterator_type end) 
{ 
    while (it != end) { 
     do_something(*(it++)); 
    } 
} 

但是有沒有可以直接拿東西有一個迭代,並獲取迭代器本身開始和結束的方法嗎?

因此,畢竟,問題簡化爲:有沒有一種標準方法從任何提供迭代器的對象獲取迭代器?(與Python中的iter(...)類似)

回答

4

您可以使用range for遍歷具有迭代器的集合。

是否有標準方法從任何提供迭代器的對象獲取迭代器?

是的,它的std::begin(...)std::end(...)的功能。

相關問題