我想要生成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