几种STL中常用的容器和类1

一、        string ( 字符串类)
1、  所需头文件: #include <string>
2、  几个常用的方法:
Ø         operator =     赋值操作
例:
std::string str1;
str1 = “abc”;
std::cout << str1 << std::endl;
结果:
  abc
Ø         append 追加操作
例:
  std::string str1 = “abc”;
  str1.append(“def”);
  std::cout << str1 << std::endl;
  str1.append(“ghi”, 2);
  std::cout << str1 << std::endl;
结果 :
  abcdef
  abcdefgh
Ø         c_str 返回 const E*;等同于const char *
例:
std::string str = “abc”;
std::cout << str.c_str() << std::endl;
结果:
  abc
             注意:
              printf(buf, “%s”, str);          Error!
              printf(buf, “%s”, str.c_str());  OK!
               使用c_str方法却无法取到/0后面的元素。
Ø         find 查找
例:
std::string str = “abc”;
int iPos = str.find(“c”);
std::cout << iPos << std::endl;
结果:
  2
Ø         iterator 叠代器
例:把 str中‘/’替换为‘//’
std::string str = “c:/test/test/”;
for (string::iterator iter = str.begin(); iter != str.end(); iter++)
                {
if (*iter == ‘/’)
        *iter = ‘//’;
}
std::cout << str << std::endl;
结果:
c:/test/test/
Ø         length
length方法可以取到 /0符号后面数据的长度。
二、        ostringstream ( 字符串格式化)
1、              所需头文件: #include <sstream>
2、              几个常用的方法:
Ø         清空
例:
      std::ostringstream stm;
      stm.str(“”);
注意: ostringstream类也有clear方法,但在某些时候不起作用。
Ø         格式化
例:
      std::string str = “abc”;
      int iData = 100;
      float fData = 8.5;
      void* pData = 0;
      std::ostringstream stm;
      std::string strResult;
      stm << str << iData << fData << pData;
      strResult = stm.str();
      std::cout << strResult << std::endl;
结果:
      abc1008.500000000
三、        ifstream 和ofstream (文件流操作)
1、              所需头文件: #include <fstream>
2、              几个常用的方法:
例:
char buf[1024];
      std::ifstream in(“ filename”, ios::in|ios::binary);
      std::ofstream out(“filename”, ios::out|ios::binary);
      if (!in || !out)
{
std::cout << “open file error!” << std::endl;
}
      if (!in.seekg(10))
      {
          std::cout << “seek error!” << std::endl;
      }
      
      memset(buf, 0, sizeof(buf));
      int nBytes = in.read(buf,sizeof(buf)).gcount();
      out.write(buffer, nBytes);
      
in.close();
      out.close();

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值