如何更改vector中元素的顺序

littlefish636 2009-07-20 09:53:23
怎样将某个元素的位置与另外一个元素的位置互换。。。最好能举例说明一下,谢谢。
...全文
921 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
littlefish636 2009-07-20
  • 打赏
  • 举报
回复
再问一下大家,sort函数是如何改变元素顺序的?与上面的方法类似吗?
danxuezx 2009-07-20
  • 打赏
  • 举报
回复
应该跟交换数组的两个值差不多吧
DarkChampion 2009-07-20
  • 打赏
  • 举报
回复
刚才写错了
#include <vector>
#include <iostream>

int main(void)
{
using namespace std;
vector<int> v1;
vector<int>::iterator it;

v1.push_back( 10 );
v1.push_back( 20 );
v1.push_back( 30 );
v1.push_back( 40 );

for (it = v1.begin(); it != v1.end(); it++)
cout << *it << "\t";
cout << endl;

int& tmp = v1[0];
int tmp2 = tmp;
v1[0] = v1[2];
v1[2] = tmp2;

for (it = v1.begin(); it != v1.end(); it++)
cout << *it << "\t";
cout << endl;

return 0;
}
ouyh12345 2009-07-20
  • 打赏
  • 举报
回复
只能改变相应迭代子的值
DarkChampion 2009-07-20
  • 打赏
  • 举报
回复
#include <vector>
#include <iostream>

int main(void)
{
using namespace std;
vector<int> v1;
vector<int>::iterator it;

v1.push_back( 10 );
v1.push_back( 20 );

for (it = v1.begin(); it != v1.end(); it++)
cout << *it << "\t";
cout << endl;

int& tmp = v1[0];
v1[0] = v1[1];
v1[1] = tmp;

for (it = v1.begin(); it != v1.end(); it++)
cout << *it << "\t";
cout << endl;

return 0;
}
asssasharp 2009-07-20
  • 打赏
  • 举报
回复
除了调整迭代子,似乎没有办法....vector是按照顺序插入的哦。
跟顶。似乎只能重新插入。用冒泡排序吧。查找到后交换。这应该是算法的问题。跟是否vector没关。
asssasharp 2009-07-20
  • 打赏
  • 举报
回复
除了调整迭代子,似乎没有办法....vector是按照顺序插入的哦。
跟顶。似乎只能重新插入。用冒泡排序吧。查找到后交换。这应该是算法的问题。跟是否vector没关。
shen8686 2009-07-20
  • 打赏
  • 举报
回复
用个temp变量。。

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧