编程不是什么技术活,就是个手工活,常常练习,否则手很生.
前面写个一次,很久不用就忘记了. http://blog.youkuaiyun.com/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;
}