C++编程思想 第1卷 第2章 vector

  string对象输入数据而不关心需要多少存储空间。但如果把每一行读入一个string对象,
我们就不知道需要多少string--只有读完整个文件后才知道,我们需要某种能够自动扩展
的存放,用以包含所需数量的string对象。
  有某种容器对象,能容纳所有的各种对象。
  vector类是一个模板,可以有效地用于不同的类型。
  用模板可以创建任何事物的类。
  vector末尾增加一个新元素,用push_back()。
  Insert(),在容器中间加入新元素。
  通过下标寻找数组的元素,vector可以像数组那样。

  << >> 用于iostream,操作符重载用于vector


//: C02:Fillvector.cpp
// From Thinking in C++, 2nd Edition
// Available at http://www.BruceEckel.com
// (c) Bruce Eckel 2000
// Copyright notice in Copyright.txt
// Copy an entire file into a vector of string
#include <string>
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

int main() {
  vector<string> v;
  ifstream in("Fillvector.cpp");
  string line;
  while(getline(in, line))
    v.push_back(line); // Add the line to the end
  // Add line numbers:
  for(int i = 0; i < v.size(); i++)
    cout << i << ": " << v[i] << endl;
  getchar();
} ///:~


  大部分与前一个程序相同,打开文件并每次将一行读进string对象。 不同的是,这些string
对象被对象压入vector v的尾部。 while循环完成是,整个文件在v内,并驻留内存


  while语句之后是for循环语句,与while类似,不过多了一些控制条件。for之后的括号内是
控制表达式,这和while语句相同。



输出
0: //: C02:Fillvector.cpp
1: // From Thinking in C++, 2nd Edition
2: // Available at http://www.BruceEckel.com
3: // (c) Bruce Eckel 2000
4: // Copyright notice in Copyright.txt
5: // Copy an entire file into a vector of string
6: #include <string>
7: #include <iostream>
8: #include <fstream>
9: #include <vector>
10: using namespace std;
11:
12: int main() {
13:   vector<string> v;
14:   ifstream in("Fillvector.cpp");
15:   string line;
16:   while(getline(in, line))
17:     v.push_back(line); // Add the line to the end
18:   // Add line numbers:
19:   for(int i = 0; i < v.size(); i++)
20:     cout << i << ": " << v[i] << endl;
21: } ///:~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值