相关疑难解决方法(0)

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

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

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

c++ pointers iterator stl

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

迭代器和指针之间有什么区别

所以我编写了这个程序并且它可以工作,但我被告知我需要使用迭代器在我编写的函数中移动.我目前正在使用指针,但我认为它们基本上是相同的东西.如果有区别,迭代器是如何使用的?

更新:所以我理解的是,与指针不同,迭代器将移动到列表中的下一个项目,即使该项目不是下一个顺序存储在内存中?它是否正确?但那它怎么知道在哪里移动?我编写了一个添加和删除节点的二叉树.在每个节点中都有指向两个子节点的指针(或者只指向一个子节点),也指向指向父节点的指针.在函数中,我递归调用我正在使用的函数并传递新指针.我有一种感觉,用迭代器替换我所拥有的东西应该很容易,但我仍然不确定.

更新2:我一直在做更多阅读并尝试一些例子,现在我对如何声明迭代器感到困惑.我遇到的所有事情都像我需要为迭代器创建另一个类.但是,当我尝试所有我得到的是编译器错误列表.任何帮助,将不胜感激.谢谢

c++ iterator

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

如何通过其第0个位置参考解析此向量

我试图从其第一个元素的引用中解析此简单数组。

这是我的代码:

#include <iostream>
#include <vector>
#include <algorithm>     

int main()
{
    vector<int> vec3 { 1,2,3,4,5};
    for( vector<int>::iterator ptr = &vec3[0]; ptr != vec3.end(); ++ptr )
    {
        cout << *ptr << " ";
    }
}
Run Code Online (Sandbox Code Playgroud)

但我收到此错误:

[Error] conversion from '__gnu_cxx::__alloc_traits<std::allocator<int> >::value_type* {aka int*}' to non-scalar type 'std::vector<int>::iterator {aka __gnu_cxx::__normal_iterator<int*, std::vector<int> >}' requested
Run Code Online (Sandbox Code Playgroud)

有什么问题?

c++ iterator stl vector c++11

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

Max 和 Min 显示为 true 而不是数字,我该怎么办?

我需要数组中的最小和最大数字,但它告诉我函数的地址将始终为 true 而不是数字。我想不出要改变什么。

#include <iostream>

using namespace std;

int main()
{
    double num1[10] {0.61, 1.70, 0.52, 1.34, 0.25, 1.20, 0.46, 1.10, 1.68, 1.37}; //material used in february
    double total1 {0};
    float average1 {0};
    int i;

    for (i=0; i<10; i++)
    {
        total1 = total1 + num1[i];
    }

    average1 = total1/10.0; //average of material used in feb

    double max1(double num1); // maximum of material used in feb

    double min1(double num1); // minimum of material used in feb

    cout << "Maximum is " …
Run Code Online (Sandbox Code Playgroud)

c++ arrays max min

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

为什么std :: istream_iterator构造函数返回指针

如下面的示例所示,iit对象初始化作为指针返回,任何人都可以解释如何从构造函数返回指针?

int main() 
{

 std::istream_iterator<int> iit (std::cin);
 std::cout  << *iit;
 return 0;

}
Run Code Online (Sandbox Code Playgroud)

c++ pointers iterator

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

标签 统计

c++ ×5

iterator ×4

pointers ×2

stl ×2

arrays ×1

c++11 ×1

max ×1

min ×1

vector ×1