use*_*267 1 c++ pointers linked-list vector
我在理解链表方面遇到了一些麻烦.我在网上看到的一切似乎都告诉我不同的事情.我有一个指向电影对象的指针向量,声明为:
vector<Movie*> movies;
Run Code Online (Sandbox Code Playgroud)
我想将其转换为电影对象的链接列表.这是我的MovieNode类:
#ifndef _MovieNode_h_
#define _MovieNode_h_
#include "Movie.h"
class MovieNode{
public:
Movie movieData;
MovieNode* nextMovie;
};
#endif
Run Code Online (Sandbox Code Playgroud)
如果有人能帮助我,我会很感激.谢谢.
使用std::copy
STL算法将您复制vector
到std::list
:
std::list<Movie*> list_movies;
std::copy( movies.begin(), movies.end(), std::back_inserter( list_movies) );
Run Code Online (Sandbox Code Playgroud)
要么
std::list<Movie*> list_movies(movies.begin(), movies.end());
Run Code Online (Sandbox Code Playgroud)
编辑:
如果您有C++ 11编译器,请考虑std::forward_list
将其替换为std :: list.