Lista ligada individual na biblioteca padrão C ++ ou em outras bibliotecas amplamente usadas?

StackOverflow https://stackoverflow.com/questions/2800064

Pergunta

Parece que existe apenas uma lista duplamente vinculada (mas nenhuma lista vinculada) na biblioteca padrão C ++, certo? Existe alguma biblioteca C ++ amplamente usada com lista de vinculação individual?

Foi útil?

Solução

Slist, que é uma extensão SGI (__gnu_cxx::slist)

#include <iostream>
#include <iterator>
#include <ext/slist>

int main(int argc, char** argv) {
  __gnu_cxx::slist<int> sl;
  sl.push_front(1);
  sl.push_front(2);
  sl.push_front(0);
  std::copy(sl.begin(), sl.end(),  // The output is 0 2 1
            std::ostream_iterator<int>(std::cout, " "));
  std::cout << std::endl;
  return 0;
}

Outras dicas

Existe o slist Classe do Boost que é uma implementação de lista ligada individualmente.

Somente para referência...

O tempo passou e o C ++ 11 nos trouxe o std :: forward_list O contêiner que é implementado como uma lista de ligações individuais e essencialmente não tem despesas gerais em comparação com sua implementação em C.

Comparado com std::list Este contêiner fornece mais armazenamento com eficiência de espaço quando a iteração bidirecional não é necessária.

Aviso: faltando push_back método (std :: forward_list e std :: forward_list :: push_back)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top