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

求问:关于vector,错在哪里?该如何解决

2012-06-18 
求问:关于vector,错在哪里?1 #include iostream2 #include vector3 using namespace std45 int main(

求问:关于vector,错在哪里?
1 #include <iostream>
  2 #include <vector>
  3 using namespace std;
  4 
  5 int main()
  6 {
  7 vector<int> ivec;
  8 int ival;
  9 
 10 //读入数据到vector对象
 11 cout << "Enter numbers:" << endl;
 12 while(cin >> ival)
 13 ivec.push_back(ival);
 14 
 15 //计算相邻元素的和并输出
 16 if(ivec.size() == 0)
 17 {
 18 cout << "No element?!" << endl;
 19 }
 20 
 21 cout << "Sum of each pair of adjacent elements in the vector:" << endl;
 22 for (vector<int>::size_type ix = 0; ix < ivec.size()-1; ix == ix + 2)
 23 {
 24 cout << ivec[ix] + ivec[ix+1] << "\t";
 25 if((ix+1)%6 == 0) //每行输出6个和
 26 cout << endl;
 27 }
 28 if(ivec.size()%2 != 0)
 29 cout << endl
 30 << "The last element is not been summed and its value is "
 31 << ivec[ivec.size()] << endl;
 32 }
 33 


请问上面的程序错在哪里,为什么执行的时候是个无限循环,谢谢各位了!

[解决办法]
12 while(cin >> ival)
 13 ivec.push_back(ival);
 

[解决办法]
发现一处错误,
在循环部分,应该写成ix=ix+2而不是ix==ix+2


[解决办法]
for (vector<int>::size_type ix = 0; ix < ivec.size()-1; ix == ix + 2)

这里越界了!!!
[解决办法]

探讨
for (vector<int>::size_type ix = 0; ix < ivec.size()-1; ix == ix + 2)

这里越界了!!!

[解决办法]
楼上的同志已经写的很好啦

楼主编程代码时出现了逻辑错误

for (vector<int>::size_type ix = 0; ix < ivec.size()-1; ix == ix + 2)中的
ix == ix + 2应写成ix=xi+2或者写成ix+=2
[解决办法]
探讨
发现一处错误,
在循环部分,应该写成ix=ix+2而不是ix==ix+2

[解决办法]
C/C++ code
#include <iostream>#include <cstdio> #include <vector> using namespace std;   int main() { vector<int> ivec; int ival;   //读入数据到vector对象  cout << "please input numbers,input 'q' if it is Done" << endl; while(scanf("%d",&ival)) {    ivec.push_back(ival); }//计算相邻元素的和并输出 if(ivec.size() == 0) { cout << "No element?!" << endl; }  cout << "Sum of each pair of adjacent elements in the vector:" << endl; for (vector<int>::size_type ix = 0; ix < ivec.size()-1; ix = ix + 2)//==---->= { cout << ivec[ix] + ivec[ix+1] << "\t"; if(ix%12 == 0) //每行输出6个和-------------> cout << endl; } if(ivec.size()%2 != 0) cout << endl << "The last element is not been summed and its value is " << ivec[ivec.size()-1] << endl;//----------->不要越界 }
[解决办法]
探讨


楼主你的程序存在大量的错误喔,以下是我帮你注释了一下错误的存在

//这是一个包含大量错误的一个程序,下面的/**/是我自己加上去的
#include "stdafx.h"
#include <iostream>

int _tmain(int argc, _TCHAR* argv[])
{
/*记住容器是用于存放一个value,而不是reference*/
vector<int……

热点排行