C++樣板、迭代器與函式混用

放輕鬆,這個版純聊天不談技術,歡迎大家進來坐坐。

C++樣板、迭代器與函式混用

文章訪客 » 週四 3月 23, 2006 8:06 pm

當單獨使用這三者,或是只使用兩者時一切正常。
但是當我嘗試混合這三者時編譯就不會過了。
比如當我嘗試自做串鏈搜尋時:
代碼: 選擇全部
template <typename CT>
CT *result FindObj(wstring name,
                typename list<CT>::iterator first,
                typename list<CT>::iterator last)
{
        typename list <CT>::iterator probe = first;
        while(probe != last){
                if((*probe).name != name)
                        probe++;
                else
                        return &(*probe);
        }
        if(probe == last)
                return 0;
}

在main中呼叫這個函式的段落
代碼: 選擇全部
  Obj *obj_res;
 wcin>>name_s;
obj_res=FindObj(name_s,obj_list.begin(),obj_list.end());

單獨按照其中一個的規則來看是沒問題的,但配合起來用時,卻連編譯也過不了。老是出現這種錯誤
代碼: 選擇全部
./testing5.cpp: In function ‘int main()’:
./testing5.cpp:49: error: no matching function for call to ‘FindObj(std::wstring&, std::_List_iterator<Obj>, std::_List_iterator<Obj>)’
./testing5.cpp: At global scope:
./testing5.cpp:76: error: expected initializer before ‘FindObj’

我實在不知道到底哪裡出錯了。請問各位有相關的處理經驗嗎?謝謝。
訪客
 

回到 talk

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客

cron