博文

STL中list的使用(2006-07-31 10:41:00)

摘要:STL中list的使用: STL中的list就是一双向链表,可高效地进行插入删除元素。现总结一下它的操作。 文中所用到两个list对象c1,c2分别有元素c1(10,20,30)  c2(40,50,60)。还有一个list<int>::iterator citer用来指向c1或c2元素。 list对象的声明构造(): A.      list<int>c0;                 //空链表 B.      list<int>c1(3);             //建一个含三个默认值是0的元素的链表 C.      list<int>c2(5,2);            //建一个含五个元素的链表,值都是2 D.      list<int>c4(c2);             //建一个c2的copy链表 E.       list<int>c5(c1.begin(),c1.end());   //c5含c1一个区域的元素[_First, _Last)。   1.       assign()分配值,有两个重载: c1.assign(++c2.begin(), c2.end()) //c1现在为(50,60)。 c......

阅读全文(26235) | 评论:4

c++中的string用法(三)(2006-07-27 20:32:00)

摘要:basic_string::max_size 返回string 能放的最大元素个数。(不同于capacity) size_type max_size( ) const; basic_string <char>::size_type cap, max; cap = s.capacity ( ); max = s.max_size ( ); // max=4294967294. basic_string::rfind 寻找给定的string。返回找到的第一个string 下标值;如果没找到则返回npos。 与find 不同的是:rfind 默认从npos 开始找。其他相同。 basic_string::replace 将原string 中的元素或子串替换。返回替换后的string。 (1)用string 或C-string 代替操作string 中从_Pos1 开始的_Num1 个字符 basic_string& replace( size_type _Pos1,size_type _Num1, const value_type* _Ptr); basic_string& replace(size_type _Pos1,size_type _Num1,const basic_string_Str); string a,b; string s ( "AAAAAAAA" ); string s1p ( "BBB" ); const char* cs1p = "CCC"; a = s.replace ( 1 , 3 , s1p ); // s=”ABBBAAAA” b = s.replace ( 5 , 3 , cs1p ); // s=”ABBBACCC” (2)用string 中从_Pos2 开始的_Num2 个字符,代替操作string 中从_Pos1 开始的_Num1 个字符 用C-string 中的_Num2 个字符,代替操作string 中从_Pos1 开始的_Num1 个字符 basic_string& replace( size_type _Pos1, size_type _Num1, const basic_string& _Str, size_type _Pos2, ......

阅读全文(9741) | 评论:0

c++中的string用法(二)(2006-07-27 20:31:00)

摘要:basic_string::compare 如果所比较的两个string 相等,则返回0; 操作string 大于参数string,返回 正数;操作string 小于参数string,返回负数。 (1)比较操作string 与_Str 或C-string_Ptr int compare( const basic_string& _Str ) const; int compare( const value_type* _Ptr ) const; int com = s.compare ( sp ); (2)比较操作string 中_Pos1(下标)开始的_Num1 个字符 与 string_Str 比较操作string 中_Pos1(下标)开始的_Num1 个字符 与 C-string _Ptr 比较操作string 中Pos1(下标)开始的Num1 个字符 与Str 中Off(下标)开始Count 个字 符 int compare( size_type _Pos1, size_type _Num1, const basic_string& _Str ); int compare( size_type _Pos1, size_type _Num1, const value_type* _Ptr ) const; int compare( size_type _Pos1, size_type _Num1, const basic_string& _Str, size_type _Off, size_type _Count ); int com1 = s.compare ( 2 , 3 , sp ); int com2 = s.compare ( 2 , 3 , c ); int com3 = s.compare ( 1 , 3 , cs , 3 ,1 ); basic_string::erase 删除string 中的一个或几个元素。前两个成员函数,返回要被删除的子串的下 一个元素的iterator; 第三个函数,返回删除后的string 的引用。 (1)删除string 中从_First 到_Last 的字符 iterator erase( iterator _First, iterator _Las......

阅读全文(11617) | 评论:0

c++中的string用法(一)(2006-07-27 20:31:00)

摘要: basic_string::append 向string 的后面加字符或字符串。(比+=, push_back 更灵活) (1)向string 的后面加C-string basic_string& append( const value_type* _Ptr ); string s ( "Hello " ); // s=”Hello ” const char *c = "Out There "; s.append ( c ); // s=”Hello Out There” (2)向string 的后面加C-string 的一部分 basic_string& append( const value_type* _Ptr, size_type _Count ); string s ( "Hello " ); // s=”Hello ” const char *c = "Out There "; s.append ( c , 3 ); // s=”Hello Out” (3)向string 的后面加string(有两种方法) basic_string& append( const basic_string& _Str ); string s1 ( "Hello " ), s2 ( "Wide " ), s3( "World " ); s1.append ( s2 ); // s1=”Hello Wide” s1 += s3; // s1=”Hello Wide World” (4)向string 的后面加string 的一部分 ---A basic_string& append( const basic_string& _Str, size_type _Off, size_type _Count ); string s1 ( "Hello " ), s2 ( "Wide World " ); s1.append ( s2 , 5 , 5 ); // s1=”Hello World” (5)向string 的后面加string 的一部分 ---B template<class InputIterator> basic_string& append( Inp......

阅读全文(22093) | 评论:3