У меня возникла проблема с этим кодом, в нем говорится, что не существует соответствующего вызова функции для времени, хотя я использую одни и те же типы данных, и число параметров одинаково, Кто-нибудь может мне помочь?нет соответствующей функции вызов неразрешенного типа функции
#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;
}
когда я бегу build_cont она работает просто отлично, но код перестанет работать, когда я положил его в функцию раз? любые предложения.
поста (полный) примером кода, который выходит из строя, с помощью диагностических сообщений –
у вас есть опечатка: 'FUNC (A, N, typval); 'должен быть' func (A, n, typeval); '. – juanchopanza
Можете ли вы публиковать ошибки? Когда вы передаете 'build_cont', вы должны указать его параметры шаблона, например' build_cont ' –
kassak