您的位置:首页 > 编程语言 > C语言/C++

string<C++标准库>的函数

2014-09-10 11:27 267 查看
string<C++标准库>的函数

函数

构造表示
string::string
(构造)

string::~string
(析构)

string::operator=
- 赋值

string::assign
– 赋值

string::get_allocator
– 获得内存分配器

字符访问
string::at
– 访问特定字符,带边界检查

string::operator[]
– 访问特定字符

string::front
– 访问第一个字符

string::back
– 访问最后一个字符

string::data
– 访问基础数组

string::c_str
– 返回对应于字符串内容的C风格零结尾的只读字符串。

string::substr
– 获取子串。参数为空时取全部源串

string::copy
– 拷贝出一段字符到C风格字符串。有溢出危险。

迭代器
string::begin
– 获得指向开始位置的迭代器

string::end
– 获得指向末尾的迭代器

string::rbegin
– 获得指向末尾的逆向迭代器

string::rend
– 获得指向开始位置的逆向迭代器

string::cbegin
– 获得指向开始位置的只读迭代器

string::cend
– 获得指向末尾的只读迭代器

string::crbegin
– 获得指向末尾的逆向只读迭代器

string::crend
– 获得指向开始位置的逆向只读迭代器

容量
string::empty
– 检查是否为空

string::size
– 返回数据的字符长度

string::length
– 返回数据的字符长度,与size()完全相同

string::max_size
– 返回可存储的最大的字节容量,在32位Windows上可能为43亿字节.

string::reserve
– 改变string的字符存储容量,实际获得的存储容量不小于reserve的参数值。

string::capacity
– 返回当前的字符存储容量

string::shrink_to_fit
(C++11新增) – 降低内存容量到刚好

修改器
string::clear
– 清空内容

string::insert
– 插入字符或字符串。目标string中的插入位置可用整数值或迭代器表示。如果参数仅为1个迭代器,则在其所指位置插入0值。

string::erase
– 删除1个或1段字符

string::push_back
– 追加1个字符

string::append
– 追加字符或字符串

string::operator+=
– 追加,只有一个参数。不具有append()的可以追加源字符串的子串的功能。

string::pop_back
– 删除最后一个字符

string::resize
– 改变(增加或减少)字符串长度。如果增加了字符串长度,新字符缺省为0值。

string::swap
– 与另一个string交换内容

string::replace
– 替换子串。如果替换源数据与被替换数据的长度不等,则结果字符串的长度发生了改变。

搜索
string::find
– 前向搜索特定子串的第一次出现

string::rfind
– 从尾部开始,后向搜索特定子串的第一次出现

string::find_first_of
– 搜索指定字符集合中任意字符在被搜索string中的第一次出现

string::find_last_of
– 搜索指定字符集合中任意字符在被搜索string中的最后一次出现

string::find_first_not_of
– 被搜索string中的不属于指定字符集合的首个字符

string::find_last_not_of
– 被搜索string中的不属于指定字符集合的末个字符

string::compare
– 与参数字符串比较

非成员函数
std::operator+
– 字符串连接

std::operator!=
– 不等比较

std::operator==
– 相等比较

std::operator<
– 小于比较

std::operator<=
– 小于等于比较

std::operator>
– 大于比较

std::operator>=
– 大于等于比较

std::operator<<
– 字符串内容写到输出流中

std::operator>>
– 从输入流中读取一个字符串

std::getline
– 从istream中读入一行或一段字符到string中

std::swap
– 交换两个string的内容。是 std::swap算法针对std::basic_string的特化版本

std::stoi
– 字符串转为整形

std::stol
– 字符串转为长整形

std::stoll
– 字符串转为长长整形

std::stoul
– 字符串转为无符号长整形

std::stoull
– 字符串转为无符号长长整形

std::stof
– 字符串转为单精度浮点形

std::stod
– 字符串转为双精度浮点形

std::stold
– 字符串转为长双精度浮点形

std::to_string
– 整型、无符号整型、浮点型转化为string

std::to_wstring
– 整型、无符号整型、浮点型转化为wstring

std::hash<std::string>
– 计算hash值

std::hash<std::wstring>
– 计算hash值

std::hash<std::u16string>
– 计算hash值

std::hash<std::u32string>
– 计算hash值

常量值
string::npos
– 表示“未找到”,值为
statci const unsigned -1


用法

#include <iostream>
#include <string>

int main()
{
std::string foo = "fighters";
std::string bar = "stool";

// "!=" compares string contents for inequality, even though they are different objects.
if (foo != bar)
{
std::cout << "The strings are different." << std::endl;
}

// Prints "stool fighters" by creating a temporary object, which is automatically freed.
std::cout << bar + " " + foo << std::endl;

return 0;
}
结果:
The strings are different.
stool fighters
由于字符串的拷贝操作与其字节长度成比例,是O(n)量级。且创建字符串的临时栈对象的成本开销。因此
string
一般作为常量引用(reference-to-const)以避免不必要的拷贝:
void print_the_string(const std::string& str){
std::cout << str;}
c_str()
成员函数返回string类的C语言风格字符串(即ASCII-零串)的指针,用于C语言字符串的互操作。如果不需要零结尾的字符串,那么成员函数
data()
返回不一定是0结尾的字符串的内存地址。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  string<C++标准库>
相关文章推荐