以实例来看关于Vector容器方面的问题
1、读入一组整数到vector对象,计算并输出每对相邻元素的和。如果读入元素个数为奇数,则提示用户最后一个元素没有求和,并输出其值。
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
vector<int> ivec1;
vector<int> ivec2;
int num;
while(cin>>num)
ivec1.push_back(num);
if(ivec1.size()%2==0)
{
for(vector<int>::size_type ix=0;ix<ivec1.size()-1;ix=ix+2)
{
cout<<ivec1[ix]+ivec1[ix+1]<<" ";
}
}
else
cout<<"last element aren't available to be added:"<<ivec1[ivec1.size()-1];
return 0;
}
1.1、修改1的程序:头尾元素两两配对(第一个和最后一个,第二个和倒数第二个,以此类推),计算每对元素的和,并输出。
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
vector<int> ivec1;
vector<int> ivec2;
int num;
while(cin>>num)
ivec1.push_back(num);
if(ivec1.size()%2==0)
{
for(vector<int>::size_type ix=0;ix<ivec1.size()/2;ix=ix+1)
{
cout<<ivec1[ix]+ivec1[ivec1.size()-1-ix]<<" ";
}
}
else
cout<<"middle element aren't available to be added:"<<ivec1[(ivec1.size()-1)/2];
return 0;
}
1.2、利用迭代器重新编写1的程序。
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
vector<int> ivec;
int num;
while(cin>>num)
ivec.push_back(num);
if(ivec.size()%2==0)
{
for(vector<int>::iterator iter=ivec.begin();iter<=ivec.end()-2;iter=iter+2)
{
cout<<*iter+*(iter+1)<<" ";
}
}
else
cout<<"last element aren't available to be added:"<<ivec[ivec.size()-1];
return 0;
}
2、读入一段文本到vector对象,每个单词存储为vector中的一个元素。把vector对象中每个单词转化为大写字母。输出vector对象中转化后的元素,每八个单词为一行输出。
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
vector<string> svec;
string word;
while (cin>>word)
svec.push_back(word);
for (vector<string>::size_type ix=0;ix!=svec.size();++ix)
{
for (string::size_type index=0;index!=svec[ix].size();++index)
{
svec[ix][index]=tolower(svec[ix][index]);
}
}
for (vector<string>::size_type ix=0;ix!=svec.size();++ix)
{
cout<<svec[ix]<<' ';
if ((ix+1)%8==0)
{
cout<<endl;
}
}
getchar();
return 0;
}