如何在c++中转换指针向量到链表

How can I convert a vector of pointers to a linked list in C++?

本文关键字:指针 向量 链表 转换 c++      更新时间:2023-10-16

我在理解链表方面有一些困难。我在网上看到的一切似乎都在告诉我不同的事情。我有一个指向电影对象的指针向量,声明为:

vector<Movie*> movies;

我想把它转换成一个电影对象的链表。这是我的MovieNode类:

#ifndef _MovieNode_h_
#define _MovieNode_h_
#include "Movie.h"
class MovieNode{
public:
    Movie movieData;
    MovieNode* nextMovie;
};
#endif
如果有人能帮我,我会很感激的。谢谢。

使用std::copy STL算法将vector复制到std::list:

std::list<Movie*> list_movies;
std::copy( movies.begin(), movies.end(), std::back_inserter( list_movies) );

std::list<Movie*> list_movies(movies.begin(), movies.end());
编辑:

如果您有c++ 11编译器,请考虑将std::forward_list作为std::list的可能替代方案。