由于本人要接手一項C++方面 的工作。由于不會C++,不過做過JAVA 以及一些web方面的開發,加之時間比較短。所以需要速成,于是學習筆記也基本都是用代碼代替。

          //范例資源文件
          /*****************************************************************************************
          Test.txt
          :
          tom 123456789
          lilei 234567891
          zhangsan 345678912
          tom 456789123
          xiaohe 567891234????????????????????????????????????????????????????????????????????
          ******************************************************************************************/
          //未用名字空間,使用vector 進行遍歷
          /******************************************************************************************
          #include "stdafx.h"
          #include <iostream>
          #include <string>
          #include <vector>
          #include <fstream>
          int _tmain(int argc,_TCHAR* argv[])
          {
          std::string strtmp;
          std::ifstream fs("Test.txt");
          std::vector<std::string> vect;
          while(getline(fs,strtmp,'\n'))
          {
          vect.push_back(strtmp.substr(0,strtmp.find(" ")));
          }
          for(std::vector<std::string>::size_type index = 0; index < vect.size();index++)
          {
          std::cout << vect[index]?? << std::endl;
          }
          return 0;
          }
          ******************************************************************************************/
          //使用名字空間,使用vector進行遍歷
          /******************************************************************************************
          #include "stdafx.h"
          #include <iostream>
          #include <string>
          #include <vector>
          #include <fstream>
          using namespace std;
          int _tmain(int argc,_TCHAR* argv[])
          {
          string strtmp;
          ifstream fs("Test.txt");
          vector<string> vect;
          while(getline(fs,strtmp,'\n'))
          {
          vect.push_back(strtmp.substr(0,strtmp.find(" ")));
          }
          for(int index = 0; index < vect.size();index++)
          {
          cout << vect[index]?? << endl;
          }
          return 0;
          }
          ******************************************************************************************/
          //利用迭代器,對vector進行遍歷
          /******************************************************************************************
          #include "stdafx.h"
          #include <iostream>
          #include <string>
          #include <vector>
          #include <fstream>
          using namespace std;
          int _tmain(int argc,_TCHAR* argv[])
          {
          ?string strtmp;
          ?ifstream fs("Test.txt");
          ?vector<string> vect;
          ?while(getline(fs,strtmp,'\n'))
          ?{
          ??vect.push_back(strtmp.substr(0,strtmp.find(" ")));
          ?}
          ?vector<string>::iterator it = vect.begin();

          ?for(;it != vect.end();it++)
          ?{
          ??cout << *it? << endl;
          ?}
          ?return 0;
          }
          ******************************************************************************************/
          //使用map 進行遍歷
          /******************************************************************************************
          #include "stdafx.h"
          #include <iostream>
          #include <string>
          #include <vector>
          #include <fstream>
          #include <map>

          using namespace std;

          int _tmain(int argc,_TCHAR* argv[])
          {
          ?string strtmp;
          ?ifstream fs("Test.txt");
          ?map<string,string>? map_temp;
          ?string::size_type index = string::npos;

          ?while(getline(fs,strtmp,'\n'))
          ?{
          ?index = strtmp.find("");
          ?map_temp[strtmp.substr(0,index)] = (strtmp.substr(++index));
          ?}
          ?map<string,string> ::iterator it = map_temp.begin();

          ?for(; it != map_temp.end(); it++)
          ?{
          ??cout << it->first << " = " << it->second << endl;
          ?}
          ?return 0;
          }
          ******************************************************************************************/
          //使用for_each 利用重載操作符 進行map遍歷
          /******************************************************************************************
          #include "stdafx.h"
          #include <iostream>
          #include <string>
          #include <vector>
          #include <fstream>
          #include <map>
          #include <iterator>
          #include <algorithm>

          using namespace std;
          class showIiem
          {
          public:
          void operator()(const map<string,string>::value_type& value)
          {
          cout << value.first << " = " << value.second << "\n";
          };

          };
          int _tmain(int argc,_TCHAR* argv[])
          {
          ?string strtmp;
          ?ifstream fs("Test.txt");
          ?map<string,string>? map_temp;
          ?string::size_type index = string::npos;

          ?while(getline(fs,strtmp,'\n'))
          ?{
          ??index = strtmp.find("");
          ??map_temp[strtmp.substr(0,index)] = (strtmp.substr(++index));
          ?}
          ?showIiem show;
          ?for_each(map_temp.begin(),map_temp.end(),show);
          ?return 0;
          }
          ******************************************************************************************/
          // 利用copy,使用重載操作符 進行map遍歷
          /******************************************************************************************
          #include "stdafx.h"
          #include <string>
          #include <fstream>
          #include <iostream>
          #include <algorithm>
          #include <map>
          #include <vector>

          using namespace std;
          namespace std
          {
          ?std::ostream& operator<<(std::ostream& os, const std::map<std::string,std::string>::value_type& value)
          ?{
          ??os << value.first << "= " << value.second;
          ??return os;
          ?}
          }
          class ShowValue
          {
          public:
          ?ShowValue(std::ostream& os):m_os(os)
          ?{
          ?}

          ?void operator()(const std::map<std::string,std::string>::value_type& value)
          ?{
          ??m_os << value.first << "= " << value.second << "\n";
          ?}
          ?std::ostream& m_os;
          };
          typedef std::ostream_iterator<std::map<std::string,std::string>::value_type> ositertype;
          std::ostream& operator<<(std::ostream& os, const std::map<std::string,std::string>& value)
          {
          ?std::for_each(value.begin(), value.end(), ShowValue(os));
          ?return os;
          }
          int _tmain(int argc,_TCHAR* argv[])
          {
          ?std::string strtmp;
          ?std::fstream in("Test.txt");
          ?std::map<std::string,std::string>? map_1;
          ?std::string::size_type idx = std::string::npos;
          ?while(std::getline(in, strtmp, '\n'))
          ?{
          ??idx = strtmp.find(' ');
          ??map_1[strtmp.substr(0, idx)] = strtmp.substr(++idx);
          ?}
          ?ositertype os_iter(std::cout, "\n");
          ?std::copy(map_1.begin(), map_1.end(), os_iter);
          ?return 0;
          }

          posted on 2008-04-08 23:46 -274°C 閱讀(4019) 評論(0)  編輯  收藏 所屬分類: C++

          常用鏈接

          留言簿(21)

          隨筆分類(265)

          隨筆檔案(242)

          相冊

          JAVA網站

          關注的Blog

          搜索

          •  

          積分與排名

          • 積分 - 914107
          • 排名 - 40

          最新評論

          主站蜘蛛池模板: 德庆县| 牡丹江市| 连江县| 独山县| 墨脱县| 福安市| 永宁县| 兴城市| 松江区| 微博| 阿鲁科尔沁旗| 海原县| 吴江市| 凌海市| 长汀县| 嫩江县| 二连浩特市| 当涂县| 杭州市| 保德县| 余姚市| 大田县| 搜索| 广南县| 神农架林区| 桃源县| 七台河市| 米泉市| 通山县| 科技| 巴楚县| 永定县| 葵青区| 江门市| 阜康市| 界首市| 筠连县| 聂拉木县| 双鸭山市| 汝州市| 蓬溪县|