如何在C ++中将指针向量转换为链表?

时间:2014-06-04 02:05:35

标签: c++ pointers vector linked-list

我在理解链接列表时遇到了一些麻烦。我在网上看到的一切似乎都告诉我不同​​的事情。我有一个指向电影对象的指针向量,声明为:

vector<Movie*> movies;

我想将其转换为电影对象的链接列表。这是我的MovieNode类:

#ifndef _MovieNode_h_
#define _MovieNode_h_

#include "Movie.h"

class MovieNode{
public:
    Movie movieData;
    MovieNode* nextMovie;
};

#endif

如果有人能帮助我,我会很感激。感谢。

1 个答案:

答案 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。