Używam podwójnie połączonej listy struktury danych CPP i napisałem następujący kod

#include<iostream>
#include <bits/stdc++.h> 
using namespace std;


int main()
{
        
    
    list <int> l1[64]; 
    l1[1].push_back(100);
    l1[2].push_back(200);
    int p=l1[1].pop_front();
    cout<<p<<endl;
     p=l1[2].pop_front();
    cout<<p<<endl;
    

}

Ale dostaję to błędy ->

trial.cpp: In function ‘int main()’:
trial.cpp:15:23: error: void value not ignored as it ought to be
   15 |  int p=l1[1].pop_front();
      |        ~~~~~~~~~~~~~~~^~
trial.cpp:17:20: error: void value not ignored as it ought to be
   17 |   p=l1[2].pop_front();
      |     ~~~~~~~~~~~~~~~^~

Nie mogę zrozumieć powodu tego błędu, ponieważ po prostu pojawiam się pierwszy element w p zmiennej i drukowania go. Więc dlaczego otrzymuję ten błąd?

c++
-2
CODE GEEK 21 listopad 2020, 10:40

1 odpowiedź

Najlepsza odpowiedź

pop_front nic nie zwraca. Powodem jest to, że niemożliwe było wdrożenie Silne Gwarancja bezpieczeństwa wyjątku jeśli tak. Aby uzyskać dostęp do przedniego elementu listy Użyj {x1}}. Oto twój kod przepisany.

int main()
{    
    list <int> l1[64]; 
    l1[1].push_back(100);
    l1[2].push_back(200);
    int p=l1[1].front();
    l1[1].pop_front();
    cout<<p<<endl;
    p=l1[2].front();
    l1[2].pop_front();
    cout<<p<<endl;
}
1
john 21 listopad 2020, 07:48