C++ 没有匹配的函数调用未解析的函数类型

C++ 没有匹配的函数调用未解析的函数类型,c++,templates,stl,c++11,C++,Templates,Stl,C++11,我对这段代码有一个问题,它说没有匹配的函数调用次,虽然我使用相同的数据类型和参数的数量是相同的,有人能帮我吗 #include <iostream> #include <iterator> #include <random> #include <vector> #include<list> #include<deque> #include <algorithm> #include <chrono> #

我对这段代码有一个问题,它说没有匹配的函数调用次,虽然我使用相同的数据类型和参数的数量是相同的,有人能帮我吗

#include <iostream>
#include <iterator>
#include <random>
#include <vector>
#include<list>
#include<deque>
#include <algorithm>
#include <chrono>
#include <functional>
#include <sstream>

using namespace std;
using namespace std::chrono;


template<typename F, typename Arg, typename T>
void times(F func, Arg A, int n, T typeval)    // call func(arg,n, typeval)
{
    auto t1 = system_clock::now();
    func(A, n, typval);
    auto t2 = system_clock::now();
    auto dms = duration_cast<milliseconds>(t2-t1);
    cout << "f(x) took " << dms.count() << " milliseconds\n";
}



int random_gen(int& i){
    default_random_engine re { std::random_device()() };
    uniform_int_distribution<int> dist;
    auto r= bind(dist,re);
    int x =r();
    return x;
    //return rand();
}

string random_gen(string& s)
{
    string Result;          // string which will contain the result
    ostringstream convert;   // stream used for the conversion
    convert << rand();
    return convert.str();
}

template<typename SequenceContainer, typename T>
void build_cont(SequenceContainer& seq, int n, T valtype)
{
    for(int i=0; i!=n; ++i) {
        T gen = random_gen(valtype);
        typename SequenceContainer::iterator it = find_if(seq.begin(), seq.end(), [gen] (const typename SequenceContainer::reference & val) { return gen < val; } );
        seq.insert(it, gen);
    }
    for(auto i:seq)
        cout<<i<<endl;
}
int main() {
    int n=10;
    vector<int> v;
    list<int>ls;
    deque<int> deq;
   cout<<"vector of int"<<endl;
    times(build_cont, v, n, 0);

//  string stemp = "";
//    cout<<"vector of strings"<<endl;
//    build_cont(sv, n, stemp);
//    cout<<"list of strings"<<endl;
//    build_cont(sls, n, stemp);
//    cout<<"deque of strings"<<endl;
//    build_cont(sdeq, n, stemp);
//    
    return 0;
}
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
使用名称空间std::chrono;
模板
无效时间(F func,Arg A,int n,T typeval)//调用func(Arg,n,typeval)
{
自动t1=系统时钟::现在();
func(A,n,typval);
自动t2=系统时钟::现在();
自动dms=持续时间(t2-t1);

cout您需要为
build\u cont

times(build_cont<std::vector<int>, int>, v, n, 0);
次数(构建控制,v,n,0);

您需要为
build\u cont

times(build_cont<std::vector<int>, int>, v, n, 0);
次数(构建控制,v,n,0);

post一个失败代码的(完整)示例,带有诊断消息您有一个输入错误:
func(a,n,typval);
应该是
func(a,n,typeval);
。您能发布错误吗?当您传递
build\u cont
时,您应该指定它的模板参数,如
build\u cont
default\u random\re{std::random_device()()};
?这是一个随机数生成器,它是失败代码的一个(完整)示例,带有诊断消息您有一个输入错误:
func(a,n,typeval);
应该是
func(a,n,typeval)
。你能发布错误吗?当你传递
build\u cont
时,你应该指定它的模板参数,比如
build\u cont
default\u random\u引擎re{std::random\u device()};
?这是一个随机数生成器,
func(a,n,typval);
应该是
func(a,n,typval);
func(a,n,typval);
应该是
func(A,n,typeval);