不明白什麼是wrogn代碼,第二個函數定義或者調用main函數中的這個函數? 我認爲,但不是很確定,調用問題,導致沒有調用代碼編譯好。編譯器的gccSTL容器作爲函數中的模板參數,調用中的錯誤
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
template<class T>
void show_element(T ob)
{
cout << ob << " ";
}
template<template<class> class S, class T>
void show_sequence(S<T> sequence)
{
for_each(sequence.begin(), sequence.end(), show_element<T>);
}
int main(int argc, char const *argv[])
{
std::vector<int> v(20, 0);
//here the problem
show_sequence<std::vector<int>, int>(v);
return 0;
}
algorithms.cpp:在函數 'INT主(INT,常量字符**)': algorithms.cpp:29:40:錯誤:對呼叫沒有匹配的功能爲「show_sequence(標準::矢量 &)' algorithms.cpp:29:40:note:candidate is: algorithms.cpp:18:6:note:template class S,class T> void show_sequence(S ) –
Anton
將錯誤消息添加到這個問題。 – molbdnilo
我建議你從算法函數中得到一些提示(例如你使用的['std :: for_each'](http://en.cppreference.com/w/cpp/algorithm/for_each)),並讓函數帶上代替迭代器。那麼你不僅可以使用該函數與標準容器,而且還可以使用數組或指針。 –