本文整理汇总了C++中list_t::insert方法的典型用法代码示例。如果您正苦于以下问题:C++ list_t::insert方法的具体用法?C++ list_t::insert怎么用?C++ list_t::insert使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类list_t
的用法示例。
在下文中一共展示了list_t::insert方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: comb
void comb(list_t &L,traverse_tree_fun f,void *data=NULL) {
if (L.size()==1) {
f(*L.begin(),data);
return;
}
int n=L.size();
for (int j=0; j<n-1; j++) {
for (int k=j+1; k<n; k++) {
btree_t T;
T.insert(T.begin(),-1);
node_t m = T.begin();
pos_t pk=L.begin();
for (int kk=0; kk<k; kk++) pk++;
T.splice(m.left(),pk->begin());
L.erase(pk);
pos_t pj=L.begin();
for (int jj=0; jj<j; jj++) pj++;
T.splice(m.right(),pj->begin());
L.erase(pj);
pos_t p = L.insert(L.begin(),btree_t());
p->splice(p->begin(),T.begin());
comb(L,f,data);
p = L.begin();
m = T.splice(T.begin(),p->begin());
L.erase(p);
pj=L.begin();
for (int jj=0; jj<j; jj++) pj++;
pj = L.insert(pj,btree_t());
pj->splice(pj->begin(),m.right());
pk=L.begin();
for (int kk=0; kk<k; kk++) pk++;
pk = L.insert(pk,btree_t());
pk->splice(pk->begin(),m.left());
}
}
}
示例2: walk2
int walk2(list_t::iterator it, int s, int t)
{
if(s==t) return 0;
for(int i=0;i<30;i++)
{
if(links[s][i].size())
{
output.insert(it, mp(links[s][i].back(),s));
links[s][i].pop_back();
return walk2(it, i,t);
}
}
return -1;
}
示例3: pump
int pump(list_t::iterator it)
{
int pos = it->second;
redo:
for(int i=0;i<30;i++)
{
if(links[pos][i].size())
{
output.insert(it, mp(links[pos][i].back(), pos));
links[pos][i].pop_back();
if(walk2(it, i, pos) == -1) return -1;
goto redo;
}
}
return 0;
}