!关于容器的有关问题
求助!关于容器的问题
关于容器这方面,我有两个问题一直困惑我,请大虾们帮帮忙吧。。。
1.利用insert(p,b,e)进行插入
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> iVec;
int i;
for(i=0;i<5;i++)
{
iVec.push_back(i);
}
iVec.insert(iVec.begin(),iVec.begin()+2,iVec.end())
vector<int>::iterator iIter1;//申请了容器的迭代器
iIter1=iVec.begin();
while(iIter1!=iVec.end())
{
cout<<*iIter1<<endl;
iIter1++;
}
return 1;
}
分析结果应该是 2 3 4 0 1 2 3 4但实际的结果是2 0 1 0 1 2 3 4 这是为什么啊
2.这个是关于pair 类型的,pair类型用作函数参数时怎么使用,能否不指定其数值的类型而是
做一个模板,能的话该怎么做
例如打印pair print(pair<type1,type2> a),类型是根据传进来的参数a自行判断 这可以实现么、、、
我真的很菜啊!
------解决方案--------------------
插入的时候更改了v的内容,插入源改变了
------解决方案--------------------
0 1 2 3 4
它是一个一个插入,而且自己插入自己,数据位置在变
先插入2
2 0 1 2 3 4
再分别插入2后两个元素,这时原来iVec.begin()+2指向第二个位置的变成指向第一个位置
2 0 1 0 1 2 3 4
------解决方案--------------------
我在VC2005中输出的结果是2 3 4 0 1 2 3 4,
这跟标准库的具体实现相关的,建议避免使用这种未定义的行为。
------解决方案--------------------
关于容器这方面,我有两个问题一直困惑我,请大虾们帮帮忙吧。。。
1.利用insert(p,b,e)进行插入
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> iVec;
int i;
for(i=0;i<5;i++)
{
iVec.push_back(i);
}
iVec.insert(iVec.begin(),iVec.begin()+2,iVec.end())
vector<int>::iterator iIter1;//申请了容器的迭代器
iIter1=iVec.begin();
while(iIter1!=iVec.end())
{
cout<<*iIter1<<endl;
iIter1++;
}
return 1;
}
分析结果应该是 2 3 4 0 1 2 3 4但实际的结果是2 0 1 0 1 2 3 4 这是为什么啊
2.这个是关于pair 类型的,pair类型用作函数参数时怎么使用,能否不指定其数值的类型而是
做一个模板,能的话该怎么做
例如打印pair print(pair<type1,type2> a),类型是根据传进来的参数a自行判断 这可以实现么、、、
我真的很菜啊!
------解决方案--------------------
插入的时候更改了v的内容,插入源改变了
------解决方案--------------------
0 1 2 3 4
它是一个一个插入,而且自己插入自己,数据位置在变
先插入2
2 0 1 2 3 4
再分别插入2后两个元素,这时原来iVec.begin()+2指向第二个位置的变成指向第一个位置
2 0 1 0 1 2 3 4
------解决方案--------------------
我在VC2005中输出的结果是2 3 4 0 1 2 3 4,
这跟标准库的具体实现相关的,建议避免使用这种未定义的行为。
------解决方案--------------------