Chinaunix首页 | 论坛 | 博客
  • 博客访问: 373047
  • 博文数量: 57
  • 博客积分: 4020
  • 博客等级: 上校
  • 技术积分: 647
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-17 15:57
文章分类

全部博文(57)

文章存档

2009年(22)

2008年(35)

我的朋友

分类: C/C++

2008-11-06 22:41:17

C++数据类型——向量(2)
1.向量-->添加元素
Author:yuexingtian
Date: 2008-11-6 Thursday
//向量-->添加元素
//例:读入一个文件yuexingtian.txt 的数据到向量中,文件中为一些整数(不知个数的情况)。
//要判断向量中的元素有多少个两两相等的数对,如下:
//===============yuexingtian-->begin==============================
//向量操作
-->添加元素(例1)
//============================================================
#include
#include
#include
using namespace std;
//-------------------------------
int main()
{
  ifstream in("yuexingtian.txt");//yuexingtian.txt文件必须要和此程序放在同一个文件夹下
 
vector<int> s;
  for(int a; in>>a;)//将yuexingtian.txt的数据全都读入a中
   
s.push_back(a);//在s向量最后插入元素a的值
 
int pair=0;
  for(int i=0;i1
;++i)//比较是否有相等的数的for循环
 
for(int j=i+1;j    if(s[i]==s[j]) pair++;
  cout<}
//========================end============thanks=================
  因为不知道文件中的元素个数,所以无法用数组来处理,也无法向向量定义中确定元素个数,但可以先创建一个空向量,
然后用添加操作不断往向量中添加元素。
  如果频繁扩充容量,就要显著增加向量操作的负担,因为扩充意味着分配更大空间,复制原空间到现空间,删除原空间。
向量并不是每次扩展都要扩容,向量中预留了一部分未用的元素供扩展之用。
  一开始若创建一个空向量,则向量中已经含有一些未用的元素,可以用capacity()查看。
如果上述程序面临着大量数据,比如10万个整数,这时候,为了保持向量的性能,应该在一开始就规定保留未用元素的数量。
yuexingtian.txt文件内容:
 
运行结果:
 
//===============yuexingtian-->begin==============================
//向量操作
-->添加元素(例2)
//============================================================
#include
#include
#include
using namespace std;
int main()
{
vector sval;//定义一个向量
string str1("yue");
string str2("xing");
sval.push_back(str1);//在sval向量最后插入一个值,值为"yue"
sval.push_back(str2);//在sval向量最后插入一个值,值为"xing"
  
for(vector::iterator iter=sval.begin();iter!=sval.end();++iter)
     //vector::iterator为遍历器;可查看:《C++数据类型——向量(1)》
     cout<<*iter<<" ";
     cout<     return 0;

}
//========================end============thanks=================

//=================http://yuexingtian.cublog.cn=======================
运行结果:
 
2008-11-06

tianyuexing
阅读(2159) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~