STL::string
typedef basic_string<char> string;
- String class
在C++的标准模板库STL中,string是一种用来方便存储和操作字符数据的类。在标准的string类的设计之初,是用来作为一种字节的容器,在后来加入以下特性后被专门用来操作单字节的字符串。需要注意的是:string类的所有操作都是基于单字节的,因此当使用多字节的或者变长字节的(UTF-8)时,string类的数据成员和成员方法的操作也只是基于单字节的,不会因为编码方式的改变而改变。
- Member functions(成员函数)
- 构造函数
- 构造函数
-
(constructor)
- Construct string object (public member function )
-
(destructor)
- String destructor (public member function )
-
operator=
- String assignment (public member function )
<span style="font-weight: normal;">default (1) string();
copy (2) string (const string& str);
substring (3) string (const string& str, size_t pos, size_t len = npos);
from c-string (4) string (const char* s);
from sequence (5) string (const char* s, size_t n);
fill (6) string (size_t n, char c);
range (7) template <class InputIterator>string (InputIterator first, InputIterator last);</span>
使用例子:
<span style="font-weight: normal;">// string constructor
#include <iostream>
#include <string>
int main ()
{
std::string s0 ("Initial string");
// constructors used in the same order as described above:
std::string s1;
std::string s2 (s0);
std::string s3 (s0, 8, 3);
std::string s4 ("A character sequence", 6);
std::string s5 ("Another character sequence");
std::string s6 (10, 'x');
std::string s7a (10, 42); // 42 is the ASCII code for '*'
std::string s7b (s0.begin(), s0.begin()+7);
std::cout << "s1: " << s1 << "\ns2: " << s2 << "\ns3: " << s3;
std::cout << "\ns4: " << s4 << "\ns5: " << s5 << "\ns6: " << s6;
std::cout << "\ns7a: " << s7a << "\ns7b: " << s7b << '\n';
return 0;
}</span>
Output:
s1: s2: Initial string s3: str s4: A char s5: Another character sequence s6: xxxxxxxxxx s7a: ********** s7b: Initial |
- Iterators:(数据迭代)
-
begin
- Return iterator to beginning (public member function )
-
end
- Return iterator to end (public member function )
-
rbegin
- Return reverse iterator to reverse beginning (public member function )
-
rend
- Return reverse iterator to reverse end (public member function )
-
cbegin
- Return const_iterator to beginning (public member function )
-
cend
- Return const_iterator to end (public member function )
-
crbegin
- Return const_reverse_iterator to reverse beginning (public member function )
-
crend
- Return const_reverse_iterator to reverse end (public member function )
<span style="font-weight: normal;">// string::begin/end
#include <iostream>
#include <string>
int main ()
{
std::string str ("Test string");
for ( std::string::iterator it=str.begin(); it!=str.end(); ++it)
std::cout << *it;
std::cout << '\n';
return 0;
}</span>
Output:
Output:
Test string |
- Capacity:(容量设置)-->和vector一样,请查看前一篇博文
-
size
- 返回字符串的长度 (public member function )
-
length
- 返回字符串的长度 (public member function )
-
max_size
- Return maximum size of string (public member function )
-
resize
- Resize string (public member function )
-
capacity
- Return size of allocated storage (public member function )
-
reserve
- Request a change in capacity (public member function )
-
clear
- 清空字符串 (public member function )
-
empty
- 判断字符串是否为空(public member function )
-
shrink_to_fit
- Shrink to fit (public member function )
- Element access:(元素访问)-->和vector一样,请查看前一篇博文
-
operator[]
- 从字符串中获取指定位置字符 (public member function )
-
at
- 从字符串中获取指定位置字符 (public member function )
-
back
- Access last character (public member function )
-
front
- Access first character (public member function )
- Modifiers:(元素修改)
-
operator+=
- 在字符串尾部增加新字符串 (public member function )
-
append
- 在字符串尾部增加新字符串 (public member function )
-
push_back
- 在字符串尾部增加新字符 (public member function )
-
assign
- Assign content to string (public member function )
-
insert
- 在指定为插入字符串 (public member function )
-
erase
- 在指定为删除字符串 (public member function )
-
replace
- 在指定为替换字符串 (public member function )
-
swap
- Swap string values (public member function )
-
pop_back
-
Delete last character (public member function )
示例如下:
- operator+=