我試過的Visual C++ 2008 Express Edition的這段代碼,但它不會編譯:std :: find在std :: vector <std :: string>不能在Visual C++ 2008中編譯?
#include <iostream>
#include <vector>
#include <algorithm>
int main()
{
typedef std::string Element;
typedef std::vector<Element> Vector;
typedef Vector::iterator Iterator;
Vector v;
std::find(v.begin(), v.end(), std::string("xxx"));
return 0;
}
我收到以下錯誤:
c:\programmi\microsoft visual studio 9.0\vc\include\algorithm(40) : error C2784: 'bool std::operator ==(const std::vector<_Ty,_Alloc> &,const std::vector<_Ty,_Alloc> &)' : could not deduce template argument for 'const std::vector<_Ty,_Alloc> &' from 'std::basic_string<_Elem,_Traits,_Ax>'
相同的代碼進行修正的GCC編譯和工作原理預期。
這是Visual Studio的錯誤嗎?我怎樣才能讓我的例子在Visual C++ 2008上工作?
如果您希望人們查看錯誤,則需要輸入錯誤的輸出。除了不用任何東西來填充你的向量,只是爲了測試std :: find()? – lollancf37