我的列表包含一個名稱和校園ID(CWID)。我如何將我列表中的cwid與我傳入的整數進行比較?我寫下了我正在嘗試做的比較的僞碼。C++在單個鏈接列表中訪問特定值
void check_cwid(studentList& list, int cwid) {
studentNode *p = list.head_;
while(p != nullptr){
//Something like this
if *p.cwid() == cwid
//do something
p = p->next_;
}
我正試圖完成上面的代碼。我只是不知道如何比較列表中的特定項目。下面是我的整個練習項目。
#include <iostream>
using namespace std;
class student {
public:
student(const string& sname = "", int cwid = 0) : sname_(sname), cwid_(cwid) {}
string sname() const {return sname_;}
int cwid() const {return cwid_;}
friend ostream& operator <<(ostream& os, student st){
return os << endl << st.sname_ << endl << st.cwid_ << endl;
}
private:
string sname_;
int cwid_;
};
struct studentNode {
studentNode(const string& sname, int cwid, studentNode* next=nullptr) :st_(sname, cwid), next_(next) {}
studentNode(student& st, studentNode* next=nullptr) : st_(st), next_(next) {}
friend ostream& operator << (ostream& os, studentNode node) {
return os << node.st_;
}
studentNode* next_;
student st_;
};
struct studentList {
studentList() : head_(nullptr), size_(0) {}
studentNode* head_;
size_t size_;
};
///******************** what im trying to do
void check_cwid(studentList& list, int cwid) {
studentNode *p = list.head_;
while(p != nullptr){
}
}
這是代碼山嶺巨人,它的凌亂,大量的空白。你能清理它並刪除那些與手頭問題沒有嚴格關係的東西嗎? – tadman
好吧現在怎麼樣 –
那裏還有很多死亡空間,加上從問題核心分心的神祕代碼,不管是什麼。閱讀[如何製作一個很好的最小自包含示例](https://stackoverflow.com/help/mcve)。 – tadman