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

关于vector 迭代的有关问题

2013-07-04 
关于vector 迭代的问题做了一个c++ primer的练习题有关迭代的,用vector储存十个数字然后用迭代把这些数字

关于vector 迭代的问题
做了一个c++ primer的练习题有关迭代的,用vector储存十个数字然后用迭代把这些数字变成原来的两倍。代码如下


#include<iostream>
#include<string>
#include<vector>
using namespace std;

int main()
{
vector<int> ival(10);
cout<<"Please enter 10 integers:"<<endl;
for (int i=0;i!=10;i++)
{
int temp;
cin>>temp;
ival.push_back(temp);
}
for (vector<int>::iterator iter=ival.begin();iter!=ival.end();++iter)
{
*iter=*iter*2;
cout<<*iter<<endl;
}

}

结果发现输出结果会先显示十个0然后才出正确的数字
调试的时候发现ival的大小变成了20 而不是初始设置的10个元素,想问一下这是为什么?另外我现在用cmdb编译,用notepad++编写代码,因为觉得vs2010用起来很麻烦,想问一下有没有什么容易操作的能调试c++的软件,谢谢.
[解决办法]
vector<int> ival(10); 此句已经加入10个数,而且初始化0了.

应该直接vector<int> ival;然后再push_back 10次。
[解决办法]
引用:
vector<int> ival(10); 此句已经加入10个数,而且初始化0了.

应该直接vector<int> ival;然后再push_back 10次。


就是这样。你是不是没有搞清楚vector是如何声明的。感觉你的这种声明跟数组的声明搞混了。
[解决办法]
vector<int> ival(10);

里面已经有10 个 0

ival.push_back(temp);  你有加进去了10个


容易操作的能调试c++的软件,我还是习惯用VS系列。VS2008就不错,在加个VX插件

热点排行