相关疑难解决方法(0)

迭代器和指针有什么关系?

使用迭代器的代码看起来非常像带指针的代码.迭代器是一些模糊的类型(std::vector<int>::iterator例如).

我没有得到的是迭代器和指针是如何相互关联的 - 迭代器是指针周围的包装器,带有重载操作以前进到相邻元素,还是其他什么?

c++ pointers iterator stl

35
推荐指数
4
解决办法
2万
查看次数

模板类型为基础时通过引用传递的成本

我一直听说确保最佳表现的良好做法是:

  • 按值传递基本类型(int,double...)
  • 通过const引用传递类

现在,在编译器下使用C++ 11和完全优化,当通过const引用传递基本类型时是否有开销?

进而,当Tint将以下功能:

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)

c++ optimization pass-by-reference pass-by-value c++11

4
推荐指数
1
解决办法
622
查看次数

声明一个模板函数,它接收两个通用迭代器作为参数

我需要创建一个函数,从一个容器的开头和结尾接收迭代器.然后它应该在控制台中显示内容.

我的问题是我不知道如何声明迭代器,以便它可以使用任何类型的容器

这就是我做的:

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)

c++ templates

2
推荐指数
1
解决办法
47
查看次数