我一直在試圖做Ex。 10-02加速C++,它給我錯誤,我最終保持「簡化」我的程序,直到我到了這一點,甚至仍然不會編譯(通過g ++)給我的錯誤:帶迭代器的模板函數
test.cpp: In function ‘int main()’:
test.cpp:22: error: no matching function for call to ‘dumb(__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >)’
這是我的計劃:
#include <algorithm>
#include <iostream>
#include <vector>
using std::cout; using std::endl;
using std::vector;
template <class Ran, class T> T dumb(Ran begin, Ran end)
{
return *begin;
}
int main()
{
vector<int> myVector;
for (int i = 1; i <= 9; ++i)
myVector.push_back(i);
int d = dumb(myVector.begin(), myVector.end());
cout << "Value = " << d << endl;
return 0;
}
是什麼造成這個錯誤?
+1擊敗我吧,grump ... – hmjd
+1,這個答案更簡單,正確的方式來處理這樣的容器。 – iammilind
啊,很好..我的書還沒有涵蓋:: value_type的用法,雖然我看了索引,它在下一章..雖然很好的乾淨的方式來解決我的問題,謝謝! – adelbertc