关于vector冒泡排序的问题?

wyjjsn 2010-01-11 02:51:28


vector<int>vce_type[5] = {2, 8, 3, 4, 6};
int i,d,n;
int t;
n= 5 + 1;
for(i=0;i<=n-1;i++)
{
for(d=0;d<=n-2;d++)
{
if (vce_type[d] < vce_type[d+1])
{
t = vce_type[d];
vce_type[d] = vce_type[d+1];
vce_type[d+1] = t;
}
}
}

for (int i = 0; i < 5; ++i)
{
cout<<vce_type[i]<<endl;
}
//问题是: 为什么这样对vector排序会报错,对数组就行,或者说vector该怎么弄冒泡法?

...全文
265 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
georgesome 2010-01-11
  • 打赏
  • 举报
回复
学习,学习!
dskit 2010-01-11
  • 打赏
  • 举报
回复
楼主看到5个 vector就该结贴了。
code_study 2010-01-11
  • 打赏
  • 举报
回复
.......................
灌水九段 2010-01-11
  • 打赏
  • 举报
回复
vector不是这样初始化的 你这样是新建了5个vector
  • 打赏
  • 举报
回复
没问题了



int main()
{
int arr[5]={2, 8, 3, 4, 6};
vector<int> vce_type;
int i,d,n;
int t;
n= 5 + 1;
for(i=0;i<5;++i)
vce_type.push_back(arr[i]);
for(i=0;i<=n-1;i++)
{
for(d=0;d<=n-2;d++)
{
if (vce_type[d] < vce_type[d+1])
{
t = vce_type[d];
vce_type[d] = vce_type[d+1];
vce_type[d+1] = t;
}
}
}

for (i = 0; i < 5; ++i)
{
cout<<vce_type[i]<<endl;
}

return 0;
}

Thirteen07 2010-01-11
  • 打赏
  • 举报
回复
vactor<int> 从内部实现来说是一个动态数组,也就是说LZ定义了5个动态数组
正确的做法是声明一个vector<int>,然后把后面的值push进去,最后排序就KO了
科比布莱恩特 2010-01-11
  • 打赏
  • 举报
回复
最简单的方法:声明Vector后,一个个push进去.
lovesi3344 2010-01-11
  • 打赏
  • 举报
回复
n= 5;
lovesi3344 2010-01-11
  • 打赏
  • 举报
回复
改成下面这样应该可以
你运行下试试

vector<int>vce_type[5] = {2, 8, 3, 4, 6};
int i,d,n;
int t;
n= 5 + 1;
for(i=0;i<n;i++)
{
for(d=1;d<i+1;d++)
{
if (vce_type[i] > vce_type[d])
{
t = vce_type[i];
vce_type[i] = vce_type[d];
vce_type[d] = t;
}
}
}

for (int i = 0; i < 5; ++i)
{
cout<<vce_type[i]<<endl;
}
Hongwei217 2010-01-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hpsmouse 的回复:]
你那是声明了五个 vector,大小分别为 2, 8, 3, 4, 6……
[/Quote]

哈哈,是的,楼主该好好看看怎么声明和定义这类变量
teleinfor 2010-01-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hpsmouse 的回复:]
你那是声明了五个 vector,初始化为 2, 8, 3, 4, 6
[/Quote]
。。。。。。。。。。。
pengzhixi 2010-01-11
  • 打赏
  • 举报
回复
比较5个vector的大小?
ithiker 2010-01-11
  • 打赏
  • 举报
回复
vector<int> ----> int
还是先别用vector,这样改,估计能运行
taodm 2010-01-11
  • 打赏
  • 举报
回复
呃,认真啊。
2010-01-11
  • 打赏
  • 举报
回复
你那是声明了五个 vector,大小分别为 2, 8, 3, 4, 6……

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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