首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

问一个multi地图容器迭代器的有关问题?

2012-12-15 
问一个multimap容器迭代器的问题??multimapdouble,double coorsmultimapdouble,double::iterator itc

问一个multimap容器迭代器的问题??
    multimap<double,double> coors;   
multimap<double,double>::iterator itcoors1,itcoors2;
        itcoors1=coors.begin();
        itcoors2=coors.begin()+coors.size()/2;///这句报错
        multimap<double,double> co1;
        co1.insert(itcoors1,itcoors2);
我想取得中间的迭代器,获得一个迭代器区间,再把这区间的数据插入到另一个迭代器中,怎么老是报错。
谢谢了
[最优解释]
一个一个插:


multimap<double,double> coors;   
multimap<double,double>::iterator itcoors1,itcoors2;
multimap<double,double> co1;

int nCoorsSize = coors.size();
int i;
itcoors1 = coors.begin();
for (i = 0; i < nCoorsSize / 2; i++)
{
co1.insert(*itcoors1);
itcoors1++;
}


VS2008中multimap的insert区间函数原形:
 void insert(_It _F, _It _L)
 {for (; _F != _L; ++_F)
 _Tr.insert(*_F); }
可见函数中也是用for循环来一个一个插入的。

[其他解释]
虽然如果A树的所有元素都小于B树的所有元素的话红黑树的确有O(logn)的合并。但是一般情况下的确只能一个个搞。
[其他解释]
引用:
一个一个插:
C/C++ code?123456789101112multimap<double,double> coors;   multimap<double,double>::iterator itcoors1,itcoors2;multimap<double,double> co1; int nCoorsSize = coors.size();int i;itc……

谢谢,看样子也只能这么搞了。

热点排行