我在理解链接列表时遇到了一些麻烦。我在网上看到的一切似乎都告诉我不同的事情。我有一个指向电影对象的指针向量,声明为:
vector<Movie*> movies;
我想将其转换为电影对象的链接列表。这是我的MovieNode类:
#ifndef _MovieNode_h_
#define _MovieNode_h_
#include "Movie.h"
class MovieNode{
public:
Movie movieData;
MovieNode* nextMovie;
};
#endif
如果有人能帮助我,我会很感激。感谢。
答案 0 :(得分:6)
使用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
as a possible alternative到std :: list。