使用STL的vector容器类
2016-04-02 15:03
316 查看
范例程序:
#include <iostream>
#include <iomanip>
#include <vector>
#include <algorithm>
#include <iterator>
using namespace std;
int main()
{
const int Size = 5;
int i, SizeF, SizeC;
float A[Size] = { 1.5, 2.9, 3.8, 4.2, 5.7 };
char B[Size] = { 'b', 'a', 'i', 'r', 'w' };
//定义vector对象
vector<float> Vf(A, A + Size);
vector<char> Vc(B, B + Size);
SizeF = Vf.size();
SizeC = Vc.size();
//定义ostream对象
ostream_iterator<float> IntOut(cout, " ");
ostream_iterator<char> CharOut(cout, " ");
cout << showpoint << setprecision(4);
cout << "\n---------------测试vector<float>---------------" << endl;
cout << "\nVf为:" << endl;
//vector对象输出
for (i = 0; i < SizeF;i++)
{
cout << Vf[i] << "";
}
//设置特定元素
Vf.at(2) = 9.9;
cout << endl;
cout << "在执行设置1之后,Vf变为:" << endl;
//vector对象输出
copy(Vf.begin(), Vf.end(), IntOut);
cout << endl;
Vf[3] = 2.8;
cout << "在执行设置2之后,Vf变为:" << endl;
copy(Vf.begin(), Vf.end(), IntOut);
cout << endl;
//插入额外的元素
Vf.insert(Vf.begin() + 3, 1.2);
cout << "在执行完插入元素后,Vf变为:" << endl;
copy(Vf.begin(), Vf.end(), IntOut);
cout << endl;
//将对象中的元素依大小顺序排序
sort(Vf.begin(), Vf.end());
cout << "排序后Vf变为:" << endl;
copy(Vf.begin(), Vf.end(), IntOut);
cout << endl;
//重排
random_shuffle(Vf.begin(), Vf.end());
cout << "重排后Vf变为:" << endl;
//对象输出
copy(Vf.begin(), Vf.end(),IntOut);
cout << endl;
cout << "\n---------------测试vector<char>---------------" << endl;
cout << "\nVc为:" << endl;
//Vector对象的输出
for (i = 0; i < SizeC;i++)
{
cout << Vc[i] << " ";
}
cout << endl;
//改变特定元素的值
Vc.at(2) = 'h';
cout << "在执行设置1之后,Vc变为:" << endl;
copy(Vc.begin(), Vc.end(), CharOut);
cout << endl;
Vc[3] = 'G';
cout << "在执行设置2之后,Vc变为:" << endl;
copy(Vc.begin(), Vc.end(), CharOut);
cout << endl;
//插入元素
Vc.insert(Vc.begin() + 3, 'p');
cout << "在执行完插入元素后,Vc变为:" << endl;
copy(Vc.begin(), Vc.end(), CharOut);
cout << endl;
//输出
sort(Vc.begin(), Vc.end());
cout << "排序后Vf变为:" << endl;
copy(Vc.begin(), Vc.end(), CharOut);
cout << endl;
//重排
random_shuffle(Vc.begin(), Vc.end());
cout << "重排后Vc变为:" << endl;
copy(Vc.begin(), Vc.end(), CharOut);
cout << endl;
return 0;
}
程序执行结果:
#include <iostream>
#include <iomanip>
#include <vector>
#include <algorithm>
#include <iterator>
using namespace std;
int main()
{
const int Size = 5;
int i, SizeF, SizeC;
float A[Size] = { 1.5, 2.9, 3.8, 4.2, 5.7 };
char B[Size] = { 'b', 'a', 'i', 'r', 'w' };
//定义vector对象
vector<float> Vf(A, A + Size);
vector<char> Vc(B, B + Size);
SizeF = Vf.size();
SizeC = Vc.size();
//定义ostream对象
ostream_iterator<float> IntOut(cout, " ");
ostream_iterator<char> CharOut(cout, " ");
cout << showpoint << setprecision(4);
cout << "\n---------------测试vector<float>---------------" << endl;
cout << "\nVf为:" << endl;
//vector对象输出
for (i = 0; i < SizeF;i++)
{
cout << Vf[i] << "";
}
//设置特定元素
Vf.at(2) = 9.9;
cout << endl;
cout << "在执行设置1之后,Vf变为:" << endl;
//vector对象输出
copy(Vf.begin(), Vf.end(), IntOut);
cout << endl;
Vf[3] = 2.8;
cout << "在执行设置2之后,Vf变为:" << endl;
copy(Vf.begin(), Vf.end(), IntOut);
cout << endl;
//插入额外的元素
Vf.insert(Vf.begin() + 3, 1.2);
cout << "在执行完插入元素后,Vf变为:" << endl;
copy(Vf.begin(), Vf.end(), IntOut);
cout << endl;
//将对象中的元素依大小顺序排序
sort(Vf.begin(), Vf.end());
cout << "排序后Vf变为:" << endl;
copy(Vf.begin(), Vf.end(), IntOut);
cout << endl;
//重排
random_shuffle(Vf.begin(), Vf.end());
cout << "重排后Vf变为:" << endl;
//对象输出
copy(Vf.begin(), Vf.end(),IntOut);
cout << endl;
cout << "\n---------------测试vector<char>---------------" << endl;
cout << "\nVc为:" << endl;
//Vector对象的输出
for (i = 0; i < SizeC;i++)
{
cout << Vc[i] << " ";
}
cout << endl;
//改变特定元素的值
Vc.at(2) = 'h';
cout << "在执行设置1之后,Vc变为:" << endl;
copy(Vc.begin(), Vc.end(), CharOut);
cout << endl;
Vc[3] = 'G';
cout << "在执行设置2之后,Vc变为:" << endl;
copy(Vc.begin(), Vc.end(), CharOut);
cout << endl;
//插入元素
Vc.insert(Vc.begin() + 3, 'p');
cout << "在执行完插入元素后,Vc变为:" << endl;
copy(Vc.begin(), Vc.end(), CharOut);
cout << endl;
//输出
sort(Vc.begin(), Vc.end());
cout << "排序后Vf变为:" << endl;
copy(Vc.begin(), Vc.end(), CharOut);
cout << endl;
//重排
random_shuffle(Vc.begin(), Vc.end());
cout << "重排后Vc变为:" << endl;
copy(Vc.begin(), Vc.end(), CharOut);
cout << endl;
return 0;
}
程序执行结果:
相关文章推荐
- Cannot retrieve repository metadata (repomd.xml) for repository: base. Please verify its path and tr
- 遍历set
- 轮播图系列教程(三)函数调用及封闭空间形式案例——和派孔明
- sizeof()计算一个类的对象大小和sizeof(string)的问题
- 宏,内联函数
- Cocos2dx通过批处理快速的创建工程
- C语言 函数指针
- Android无线开发的几种常用技术(阿里巴巴资深工程师原创分享)
- php memcached在windows上的使用
- Linux内核分析实验六
- fzu2122
- Android学习之RecylerView实习仿支付宝充值界面
- Android 新版NDK环境搭建(免Cygwin)
- 关于eclipse下开发android应用的几个常用插件
- 60. Permutation Sequence
- linux多线程编程书籍推荐:linux大牛之路从这几本书开始总结
- u32和字符串的转换函数
- set的特点
- Quartus调用Modelsim SE避免重复编译Altera器件库的方法
- ios 一步一步学会自定义地图吹出框(CalloutView)-->(百度地图,高德地图,google地图)