打印出指针列表

时间:2012-02-12 18:57:56

标签: c++ list pointers

我目前创建了一个指针列表,指向另一个int列表的每个第5个元素。我试图打印出这个指针列表,以确保它指向另一个列表的正确元素。

我已尝试过各种方法来做到这一点,但似乎没有一种方法可行。

for (int* t = pointersList.begin(); t != pointersList.end(); ++t)
{
   cout << *t << endl;
}

for (int i = 0; i < pointersList.size(); ++i)
{
   int* itr;
   itr = pointersList.begin()+i;
   cout << *itr;
}

我也尝试像向量(cout << pointersList[i];)那样访问它,但这些似乎都不起作用。

我知道指针指向元素的内存位置(以及我使用*的位置),但我不知道我何时使用&或甚至是&*

3 个答案:

答案 0 :(得分:3)

假设您使用的是标准库容器或具有类似接口的容器,那么begin()end()将返回迭代器,而不是int *。在大多数情况下,代码不应该编译。

答案 1 :(得分:1)

执行以下操作。这应该工作。这将使它打印你的指针值。希望这是你想要的。

for(int a = 0; a < pointersList.size(); a ++)
   {
    std::list<int*>::iterator i = pointersList.begin();

    advance(i, a);
    int* totry = *i;
    cout << *totry;
    cout << ",";
    }

答案 2 :(得分:0)

你在这里遇到了严重的问题。我只是给你一些提示,希望你自己在10分钟内找到答案。

在第一个for循环中,您将增加指针本身而不是列表。