读书人

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

发布时间: 2012-06-18 13:23:36 作者: rapoo

求问:关于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……

读书人网 >C++

热点推荐