我想要生成int或double类型的随机数字,然后将它们插入一个类型的容器向量,列表为排序顺序 但问题是插入是不工作,我不知道为什么,所以你能帮助我吗?插入到一个通用的容器不起作用
#include <iostream>
#include <iterator>
#include <random>
#include <vector>
#include<list>
#include<deque>
#include <algorithm>
#include <chrono>
using namespace std;
int random_gen(){
default_random_engine re { std::random_device()() };
uniform_int_distribution<int> dist;
auto r= bind(dist,re);
int x =r();
return x;
}
template<typename SequenceContainer>
void build_cont(const SequenceContainer& seq, int n)
{
for(int i=0; i!=n; ++i) {
int gen = random_gen();
//std::iterator<T> it=lower_bound(begin(seq), end(seq), gen);
typename SequenceContainer::iterator it;
it=find_if(seq.begin(), seq.end(), [it](){ return *it<gen;});
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;
build_cont(v, n);
build_cont(ls, n);
build_cont(deq, n);
return 0;
}
我得到现在是一个链接错误,所以我不知道什么是错的错误?
如果你想将其插入顺序(即维持秩序当你插入)为什么不使用'std :: set'或'std :: multiset'? – 2013-02-26 04:29:48
我需要的代码与矢量,列表和德克工作 – user1653150 2013-02-26 04:31:02
我遇到的问题是与find_if和插入 – user1653150 2013-02-26 04:31:37