我已經實現了我自己的雙向鏈表,它具有模板化節點。通過這個節點,我已經存儲了我自己的對象(Play),它已經得到了槍支,並且爲我的列表創建了一個迭代器。使用get函數訪問存儲在節點中的數據
for(DLL<Play>::iterator itr=PlayList.begin(); itr!=PlayList.end(); itr++)
if(offense==*how do I access this*getoTeam()){
這是我的節點和迭代器代碼:
template<class T>
class node{
public:
T data;
node *next, *prev;
node(const T& t, node<T> *n = 0, node<T> *p = 0) {data=t; next=n; prev=p;}
node() {next = prev = 0;}
};
template<typename T>
class Iterator{
public:
Iterator(node<T> *np=0) : nodePtr(np) {}
T& operator*() const {return nodePtr->data;}
Iterator<T> &operator++(){
nodePtr = nodePtr->next;
return *this;
}
Iterator<T> operator++(int){
Iterator<T> Temp(nodePtr);
nodePtr = nodePtr->next;
return Temp;
}
bool operator==(Iterator<T> i) { return nodePtr == i.nodePtr; }
bool operator!=(Iterator<T> i) { return nodePtr != i.nodePtr; }
private:
node<T> * nodePtr;
};
我在爲我會把裏面我怎麼訪問此損失。如果你能解釋爲什麼,我會很感激。
謝謝。
而只是櫃面,這是我玩的對象:
#ifndef PLAY_H_INCLUDED
#define PLAY_H_INCLUDED
#include <string>
class Play
{
private:
int m_quarter;
int m_minutes;
std::string oTeam;
std::string dTeam;
int m_down;
int m_yardToGO;
int m_startLoc;
int playDesc;
std::string wholePlay;
public:
int getQuarter();
int getMinutes();
std::string getoTeam();
std::string getdTeam();
int getDown();
int getYard();
int getStartLoc();
int getPlayDesc();
std::string getwholePlay();
Play(int quarter, int minutes, std::string offense, std::string defense, int dwn, int ytg, int start, int desc, std::string play);
~Play();
Play parse(std::string toParse);
std::string findPlay(std::string playDesc);
};
#endif // PLAY_H_INCLUDED
我不知道,如果這只是我,但我不太看你的實際問題是什麼。 – DogDog
在我的第一個代碼框中的第二行,我想看看我已經保存爲進攻的任何東西是否與當前節點(這是我的getfunction的對象)存儲的進攻等價。基本上,我會插入什麼「*我如何訪問此*」以將其與進攻進行比較。 –