打印出指针列表

Printing out a list of pointers

本文关键字:列表 指针 打印      更新时间:2023-10-16

我目前已经创建了一个指针列表,指向另一个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];)一样访问它,但这些似乎都不起作用。

我知道指针指向元素的内存位置(这就是我使用*的地方),但我永远不知道什么时候应该使用&甚至&*

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

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

for(int a = 0; a < pointersList.size(); a ++)
   {
    std::list<int*>::iterator i = pointersList.begin();
    advance(i, a);
    int* totry = *i;
    cout << *totry;
    cout << ",";
    }

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

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