2011-12-29 73 views
1

我正在將矢量更改爲列表。香港專業教育學院固定的,除了這幾樣中的所有錯誤:修復xutility的錯誤?

Error 16 error C2784: 'bool std::operator <(const std::stack<_Ty,_Container> &,const std::stack<_Ty,_Container> &)' : could not deduce template argument for 'const std::stack<_Ty,_Container> &' from 'std::list<_Ty>::_Iterator<_Secure_validation>' c:\Program Files\Microsoft Visual Studio 9.0\VC\include\xutility 2010 
Error 17 error C2784: 'bool std::operator <(const std::stack<_Ty,_Container> &,const std::stack<_Ty,_Container> &)' : could not deduce template argument for 'const std::stack<_Ty,_Container> &' from 'std::list<_Ty>::_Iterator<_Secure_validation>' c:\Program Files\Microsoft Visual Studio 9.0\VC\include\xutility 2010 
Error 18 error C2784: 'bool std::operator <(const std::stack<_Ty,_Container> &,const std::stack<_Ty,_Container> &)' : could not deduce template argument for 'const std::stack<_Ty,_Container> &' from 'std::list<_Ty>::_Iterator<_Secure_validation>' c:\Program Files\Microsoft Visual Studio 9.0\VC\include\xutility 2010 
Error 19 error C2784: 'bool std::operator <(const std::stack<_Ty,_Container> &,const std::stack<_Ty,_Container> &)' : could not deduce template argument for 'const std::stack<_Ty,_Container> &' from 'std::list<_Ty>::_Iterator<_Secure_validation>' c:\Program Files\Microsoft Visual Studio 9.0\VC\include\xutility 2010 

一個如何解決這些類型或錯誤,如果沒有行號指示哪些文件和方法導致錯誤?我不知道問題出在哪裏。

有沒有辦法找出哪些語句觸發這些?

感謝

回答

3

從你得到列表迭代這是您正在嘗試使用小於運算符(即棧1 < stack2中)比較的堆棧它的外觀。然而,棧只是將元素的比較委託給不存在的元素的操作符:列表迭代器不能使用小於運算符。如何找到發生這種情況的地方我不知道,但使用不同的編譯器可能會給您一個更好的錯誤消息。

+0

在Visual Studio中,您將得到一個「實例化堆棧」(類似於調用堆棧),它告訴您X從Y實例化了,並且從Z實例化了......最後,您會發現代碼是試圖實例化一些無法實例化的東西。 – MSalters 2011-12-29 09:39:03