c++中使用双引用

Using double references in c++

本文关键字:引用 c++      更新时间:2023-10-16

我在c++中使用列表,我碰巧需要使用双引用。我需要一个列表(在main()中定义),由另一个函数调用的函数使用,我没有设法让它工作。我附上一段代码作为示例。

有谁能帮我一下吗?

提前感谢,

Eduardo

 #include <iostream>
    #include <list>
    using namespace std;
    void aux(list<int>&);
    void aux_(list<int>&); //?
    main()
    {
        list <int> lista;
        aux(lista);
    }
    void aux(list<int>& li)
    {
        aux_(li); //?
    }
void aux_(list<int>&lis) //?
{
    list <int>::const_iterator it;
    while(it!=lis.end())
    {
        cout<<*it<<" ";
        it++;
    }
}

问题是你没有初始化迭代器,你应该初始化

list <int>::const_iterator it = lis.begin();

正如你现在看到的,代码正在运行

您可以使用迭代器,是的,或者您可以使用更简单的基于范围的for ,因为c++ 11:

void aux_(const list<int>& lis)
{
    for(int i : lis) // "for each int in lis, do the following:"
    {
        cout << i << " ";
    }
}

并且作为一个好的做法,将lis传递为const,因为您没有修改它。