创设有10个元素的VECTOR对象,用迭代器把每个元素改为当前值的2倍并显示
创建有10个元素的VECTOR对象,用迭代器把每个元素改为当前值的2倍并显示
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> ivec(10);
int ival;
cout << "Enter numbers:" << endl;
while (cin>>ival)
ivec.push_back(ival);
for(vector<int>::iterator iter=ivec.begin();iter!=ivec.end();++iter)
{cout<<(*iter)*2<<endl;}
return 0;
}
程序0错误,但是现实不出来,不知道怎么回事
------解决方案--------------------
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> v;
for (int i=0; i<10; i++)
{
v.push_back(i);
}
cout << "扩大前: " << endl;
for (int i=0; i<10; i++)
{
cout << v[i] << endl;
}
vector<int>::iterator iter = v.begin();
for (; iter != v.end(); iter++)
{
*iter *= 2;
}
cout << " 扩大后: " << endl;
iter = v.begin();
for (; iter != v.end(); iter++)
{
cout << *iter << endl;
}
}
------解决方案--------------------
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> ivec(10);
int ival;
cout << "Enter numbers:" << endl;
while (cin>>ival)
ivec.push_back(ival);
for(vector<int>::iterator iter=ivec.begin();iter!=ivec.end();++iter)
{cout<<(*iter)*2<<endl;}
return 0;
}
程序0错误,但是现实不出来,不知道怎么回事
------解决方案--------------------
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> v;
for (int i=0; i<10; i++)
{
v.push_back(i);
}
cout << "扩大前: " << endl;
for (int i=0; i<10; i++)
{
cout << v[i] << endl;
}
vector<int>::iterator iter = v.begin();
for (; iter != v.end(); iter++)
{
*iter *= 2;
}
cout << " 扩大后: " << endl;
iter = v.begin();
for (; iter != v.end(); iter++)
{
cout << *iter << endl;
}
}
------解决方案--------------------
- C/C++ code
#include <vector> #include <iostream> #include <algorithm> #include <boost/assign/std/vector.hpp> #include <boost/lambda/lambda.hpp> using namespace std; using namespace boost::assign; using namespace boost::lambda; int _tmain(int argc, _TCHAR* argv[]) { vector <int> ivec; ivec += 34,-23,56,7,9,12,50,89,3,10; for_each(ivec.begin(),ivec.end(),_1 = 2*_1); for_each(ivec.begin(),ivec.end(),cout<<_1<<' '); return 0; }
------解决方案--------------------
- C/C++ code
#include <iostream> #include <vector> using namespace std; int main() { vector <int> ivec; //注意这里如果有10的话,那么你ivec就有20个元素了 int ival; cout < < "Enter numbers:" < < endl; while (cin>>ival) ivec.push_back(ival); for(vector <int>::iterator iter=ivec.begin();iter!=ivec.end();++iter) {cout < <(*iter)*2 < <endl;} return 0; }
------解决方案--------------------
变量定义错了。。。
------解决方案--------------------
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector <int> ivec;
ivec.reserve(10);
int ival;
cout < < "Enter numbers:" < < endl;
while (cin>>ival)
ivec.push_back(ival);
for(vector <int>::iterator iter=ivec.begin();iter!=ivec.end();++iter)
{cout < <(*iter)*2 < <endl;}
return 0;
}
------解决方案--------------------
ivec.reserve(10);
------解决方案--------------------
是你的在定义容器的时候ivec.reserve(10); 这句话 就是定义了10个 0;然后用push的时候是在10个0后面push的 所以总共是20个变量。。所以先输出10个0 在输出10个整型的2倍~~
------解决方案--------------------
------解决方案--------------------
楼主也要控制一下输入的个数吧,输入到什么时候是个头啊,鉴于0的2倍还是0,就用0当结束输入标志吧。
- C/C++ code
#include <iostream> #include <vector> using namespace std; int main() { vector <int> ivec; int ival; cout << "Enter numbers:" << endl; while (cin>>ival) { if (ival == 0) break; ivec.push_back(ival); } cout << "The result is: << endl; for(vector <int>::iterator iter=ivec.begin();iter!=ivec.end();iter++) {cout <<(*iter)*2 <<endl;} return 0; }