Help me set up a double list.



  • Can't make a two-way list. It's a one-dimensional understanding of how to create, but there's a two-way poor.

    What wrote:

    #include <list>
    using namespace std;
    

    struct G{
    G*k;
    };
    list<list<G>> *n;

    void main() {
    n = new list<list<G>>();// Это вроде верно
    n.push_back(new G());// а тут как быть?
    // n[0]. ... тоже не работает(
    }



  • First, you don't have to create std::list by new♪ This type has a semantic value as it is. intand he should be used the same way.

    Second, you need to set up at least one of the lists you made before you put it there. G()

    list<list<G>> n;
    n.push_back(list<G>()); // положили новый список в список верхнего уровня
    n.back().push_back(G());
    

    Either you can use the initial.

    list<list<G>> n = {{G()}}; // список а в нем список с одним G
    

    or emplace_back

    list<list<G>> n;
    n.emplace_back({G()}); // добавляем список из одного G
    



Suggested Topics

  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2