我对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();
};
答案 0 :(得分:2)
我会把它作为评论,但我还没有足够的声誉。您是否有理由不使用std :: list?这样你就可以使用你发布的第一个代码段中的代码,即:
struct CandidateInfo {
std::string name;
int votesInThisState;
int delegatesWonInThisState; };
std::list<CandidateInfo> stateCandidates;
(注意最后一行中从向量到列表的变化)
std :: list是双向链表的STL实现。