从Vector到Linked List C ++

时间:2014-11-18 18:19:07

标签: c++

我对C ++很新,我想确保我目前已经设置了我的链表。信息之前存储在矢量中,但我被分配将其更改为链接列表。存储的信息是CandidateInfo,这是原始代码。我是否正确设置了列表?

struct CandidateInfo {
std::string name;
int votesInThisState;
int delegatesWonInThisState;  };
std::vector<CandidateInfo> stateCandidates;

这是我的尝试。建议欢迎。

template <typename StatePrimary>
struct CandidateInfo
{
    std::string name;
    int votesInThisState;
    int delegatesWonInThisState;

    StatePrimary state;
    CandidateInfo<StatePrimary>* next;
    CandidateInfo()
    {
        next = 0;
    }
    CandidateInfo
    (const StatePrimary& c,
     CandidateInfo<StatePrimary>* nxt =0)
        : state(c), next(nxt)
    {}
};
template <typename StatePrimary>
struct CandidateInfoHeader
{

    CandidateInfo<StatePrimary>* first;
    CandidateInfoHeader();

};

1 个答案:

答案 0 :(得分:2)

我会把它作为评论,但我还没有足够的声誉。您是否有理由不使用std :: list?这样你就可以使用你发布的第一个代码段中的代码,即:

struct CandidateInfo {
std::string name;
int votesInThisState;
int delegatesWonInThisState;  };
std::list<CandidateInfo> stateCandidates;

(注意最后一行中从向量到列表的变化)

std :: list是双向链表的STL实现。