使用迭代器的代码看起来非常像带指针的代码.迭代器是一些模糊的类型(std::vector<int>::iterator例如).
我没有得到的是迭代器和指针是如何相互关联的 - 迭代器是指针周围的包装器,带有重载操作以前进到相邻元素,还是其他什么?
我一直听说确保最佳表现的良好做法是:
int,double...)现在,在编译器下使用C++ 11和完全优化,当通过const引用传递基本类型时是否有开销?
进而,当T是int将以下功能:
template <typename T> inline void f(const T& x);
Run Code Online (Sandbox Code Playgroud)
慢于:
template <typename T> inline void f(const T x);
Run Code Online (Sandbox Code Playgroud) 我需要创建一个函数,从一个容器的开头和结尾接收迭代器.然后它应该在控制台中显示内容.
我的问题是我不知道如何声明迭代器,以便它可以使用任何类型的容器
这就是我做的:
template <class T>
void print(typename iterator<T> &beg, typename iterator<T> &end) {
while (beg != end) {
cout << *beg << endl;
beg++;
}
}
Run Code Online (Sandbox Code Playgroud)