| 首页 | 新闻 | 网页 | 设计 | 色彩 | 原创 | 视觉 | 素材 | 动漫 | 酷站 | 策划 | 文案 | 访谈 | 运营 | 编程 | 数据库 | 服务器 | 下载 | 图库 | 
您的位置: 幽幽天空 > 网页 > 编程开发 > CC++教程 > 文章正文 用户登录
用11条标准测验你
Flash Satay: 支持
如何将角度和坐标
AE6.0标准教材的中
判断反向链接质量
用VC程序来创建SQ
MySQL中文参考手册
VB调用C程序的方法
用VB编写标准CGI程
Visual Basic 编程

标准C程式库--标准样版库-字串样版           

标准C程式库--标准样版库-字串样版

作者:佚名 来源:不详 更新:2006-8-25 21:05:35 错误报告 我要投稿
过去几年以来,C++ 程式语言的标准语言定义程序经历了一个大改变。此标准化程序便是标准资料结构库的产生,此程式库通常称为「标准样版库」( Standard Template Library ) 或 STL 。由於 STL 是 C++ 语言定义的一部份,因此使用 STL 的程式应该享有高度可植性,因为任何标榜支援 " 标准C++" 的编译程式都必须提供 STL 实作。

叠代字只是一种类似指标的物件,可以用来循环存取容器中的所有元素。由於不同的演算法需要以个种不同的方式来游历容器,因此有各种不同的叠代子形式。标准样版库中的每个容器类都提供一种叠代子,适合和实作容器所用的储存技巧配合使用。

除了数字以外,字元与字串可能是程式设计中最常用的资料值。基本 C++ 语言一没有将字串当成一种基本型态,而是沿袭其前身 C 语言,以指标与字元阵列来实作字串,基於这个理由, string 资料型态被视为样版类别的一个合理的候选者。要使用 string 资料型态,必须引入 string 档 ( 不含 .h 附加名 )

#incldue 

利用 basic_string 样版定义两个类别:

typedef basic_string  string;    // 8 位元的字串
typedef basic_string  wstring;    // 16 位元的字串

宣告及初始化
样版宣告

template , class Allocator = allocator >
class basic_string;

建构子函式

string s1;
string s2 ("a string");
string s3 = "initial value";
string s4 (s3);        // 字串抽象的拷贝建构函式可以将一个新建立字串
                        //  的初值设定成另一字串所储存的值。

string s7 (10, '\n');            // 将所有字元填上  'n'

Top

字串长度
 有几个成员函式可以取得或改变字串的长度。

length    传回一个整数值,代表字串目前所储存的字元个数。

resize    改变字串的大小,可能从尾端去多馀的字元,也可能插入新的字元。

empty    字串没有包含任何字元,便传回 true  。  

reserve     改变缓区的大小。

max_size   传回 string  最大的空间大小

size    传回一个整数值,代表字串目前所储存的字元个数。

capacity    传回缓区的大小。

Top

指派、加入和置换
有几个成员函式负责这些功能,并且重载了一些运算子。

=    指派运算子,参数可以是 string 物件、字串、字元。

+=    指派算数运算子,将其它字串加入到原字串尾端。

+    将两字串相加,并传回一个相加字串的拷贝。

assign    将原字串覆盖掉,原字串清除。并可以指定字串的位置和大小例:s.assign(char*,pos,size);

append    将其它字串加入到原字串尾端。并可以指定字串的位置和大小。例:s.append(char*,pos,size);

swap    将两个 string 字串交换,只能两个 string 交换而已。

Top

字元存取
at    它和下列那一个功能几乎一样,除了它可以丢出一个例外(out_of_range),当指定指大於或等於 size 时。

[ ]    重载了[ ] 运算子,使它具有存取字串内某一个字元的功能。例:s4[2]

c_str    传回一个指标指向字串的位置。

data    传回一个指标指向 string 物件内的缓区。

Top

字串叠代子
begin    传回一个指向起点的叠代子。例: string::iterator itr = aString.begin();

end    传回一个指向终点的叠代子。

rbegin    传回一个指向反转起点的叠代子。

rend    传回一个指向反转终点的叠代子。

Top

插入、删除和替代
insert    将字串插入原字串,例:s.insert("abc",3);    //将 abc 插入位置 3 的地方。
             当然叠代子也可以当参数,例:s.insert( 2,s1.begin(),s1.end() ) ;   
               //将 s1 插入位置 2 的地方

erase    删除字串,例: s.erase(2,4);    //删除 第2 位置开始的 4 个字元。
            当然叠代子也可以当参数,例:s.erase(s1.begin()+4,s1.end()+6 ) ;   
             //删除第 4 ~ 6 位置的字串

replace    替换字串,例:s.replace(4, 2, "pqr"); //将 4 ~ 5 的位置替换成"pqr"。

Top

拷贝和子字串
copy    将字串拷贝,例:s.copy (s4, 2);    //将 2 ~ end 的字串拷贝到 s4。
           例:s.copy (s4, 2, 3);     //将 2 ~ 4 的字串拷贝到 s4。

substr    传回一个 string 物件,内容为指定的围。例 s.substr ( 1);    // 1~ end
              s.substr ( 1, 3);     // 1~3  

Top

字串比较
<, <=, ==, !=, >=, 和 >    逐字元的方式比较两个引数字串。

Top

搜寻操作
find    搜寻字串的位置,例:s.find("ss", 5);    
           // 从 5 之後开始搜寻,5可有可无,传回一个整数指向搜寻到的字元开始。

rfind    从字串最後面搜寻字串,例:s.rfind("ss", 5);    
           // 从字串倒数第 5 个之後开始搜寻,5可有可无,传回一个整数指向搜寻到的字元开始。

find_first_of    搜寻字串的位置,不指定位置。

find_last_of    从最後面搜寻字串的位置,不指定位置。

find_first_not_of    搜寻不是此字串的位置,不指定位置。

find_last_not_of    从最後面搜寻不是此字串的位置,不指定位置。
文章录入:skyuu    责任编辑:skyuu 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
    姓名:  评 分: 1分 2分 3分 4分 5分
     
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用幽幽天空服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表机友个人观点,与本网站立场无关。