字符串的遍历
下标遍历:
string s = "Hello World!";
for(int i = 0; i < s.length(); i++) cout << s[i] << " ";
cout << endl;
输出:
H e l l o W o r l d !
迭代器遍历:
顺序遍历
string s = "Hello World!";
for(auto it = s.begin(); it != s.end(); i++) cout << *it << " ";
cout << endl;
输出:
H e l l o W o r l d !
begin
:begin()函数返回一个迭代器,指向字符串的第一个元素.
end
: end()函数返回一个迭代器,指向字符串的末尾(最后一个字符的下一个位置)。
逆序遍历
string s = "Hello World!";
for(auto it = s.rbegin(); it != s.rend(); it++) cout << *it << " ";
cout << endl;
输出
! d l r o W o l l e H
rbegin
: rbegin()返回一个逆向迭代器,指向字符串的最后一个字符。
rend
:rend()函数返回一个逆向迭代器,指向字符串的开头(第一个字符的前一个位置)。
min/max_element: 查询字符串中最大最小值
需要algorithm头文件
/*
param begin : 序列起始地址(迭代器)
param end : 序列结束地址(迭代器)
return : 序列中最小元素地址(迭代器)
*/
min_element(begin, end);
例子:
string s = "12345";
cout << *min_element(s.begin(), s.end());
输出:
1
/*
param begin : 序列起始地址(迭代器)
param end : 序列结束地址(迭代器)
return : 序列中最大元素地址(迭代器)
*/
max_element(begin, end);
例子:
string s = "12345";
cout << *max_element(s.begin(), s.end());
输出:
5
to_string 将数值转换成为字符串
需要string头文件
关于浮点数的转换似乎不是很准确
int x = 10086;
string s = to_string(x);
cout << s << endl;
输出:
10086
str1 += str2 等价于 str1 = str1 + str2
string str1, str2;
str1 = "abc";
str2 = "def";
str1 += str2;
cout << str1 << endl;
输出:
abcdef