c++编程有关vector里赋值问题

来源:百度知道 编辑:UC知道 时间:2024/06/11 03:57:44
for(vector<int>::size_type ix=0;ix!=n1.size();ix++)
for(vector<int>::size_type im=n1.size();im>=ix;im--)
{
if(n1[im-1].average()>n1[im].average())
{stu_source n2;n2=n1[im-1];n1[im-1]=n1[im];n1[im]=n2;}
}
编译可以通过,但是赋值时n2=n1[im-1]会导致程序运行崩溃,难道这样复制不行?但是我自己单独测试却没问题,放到双重循环就不行for(vector<int>::size_type ix=0;ix!=n1.size();ix++)
for(vector<int>::size_type im=n1.size();im>=ix;im--)这两个控制条件有问题???

不羡宫殿,甘居密林
我差不多看见妈妈的脸
每一分钟都是最后一分钟。
也一样。所以我呆在外面,
但一旦死亡前来敲我们的门,那时
然而你旧的是一个孤单的以子哈哈

for(vector<int>::size_type im=n1.size();im>=ix;im--)
改为

for(vector<int>::size_type im=n1.size();im>ix;im--)

你的stu_source是什么类型?怎么还可以用n1.size()?

不会啊

我很奇怪哪:::
ix初值为0
在第二重循环中,im >= ix;
那么存在 im == ix == 0的这种情况
而你的循环中,n1[im-1],这个会指向内存的哪个区域?