编程不是什么技术活,就是个手工活,常常练习,否则手很生.
前面写个一次,很久不用就忘记了. http://blog.csdn.net/sergery/article/details/8144354
- // C++ Prime 习题3.17 P31
- // 熟悉下容器操练语法
- #include <iostream>
- #include <vector>
- using namespace std;
- void main()
- {
- vector<int> ivec; //定义一个int 数据类容易,但是没有定义大小
- int ival;
- cout<<"输入整数,CTRL + Z 结束输入"<<endl;
- // 为什么cin>>ival 表达式可以用作逻辑判断,因为该表达式返回流,流是有状态的,状态只有true or false
- // 因此cin>>ival 可以做逻辑判断
- // 具体看书 P247 第八章标准IO库,C++ Prime这本书够操蛋的,要看到后面第八章才能解释第三章的内容
- while (cin>>ival) {
- ivec.push_back(ival); // 容器的操练就是用成员函数puch_back压入元素,动态申请空间
- }
- if(ivec.size()==0) {cout<<"容器没有元素,退出"<<endl;exit(0);}
- // 求相邻元素的和
- vector<int>::size_type cnt=0;
- // 迭代器定义语法格式 vector<int>::iterator iter; 迭代器就是C语言中的指针,当指针怎么用的,就怎么用迭代器
- for(vector<int>::iterator iter=ivec.begin();iter<ivec.end()-1;iter=iter+2)
- {
- cout<<*iter + *(iter+1)<<"\t";
- ++cnt;
- if(cnt%3==0)cout<<endl;
- }
- // 最后一个元素不是 ivec.end() ; 要减一. 就像数组的最后一个元素是数组大小减一一样.
- cout<<"最后一个元素是:"<<*( ivec.end()-1 )<<endl;
- }
from: http://blog.csdn.net/sergery/article/details/8457340