- 函数重载:
- 传size_t 传iterator会执行不同的函数体
- 传char 传string会执行不同的函数体
- 默认参数:参数数量是可变的
==> 函数调用的方式千奇百怪
- size_t:unsigned_int
- string::npos:-1
- iterator:s.begin(), s.end(),
如何阅读cpp文档
dev-c++中的声明
s.begin(),s.end()
const_iterator begin() const noexcept;
const_iterator end() const noexcept;
- c++中的创建迭代器,相当于c中的创建指针
substr()
string substr (size_t pos = 0, size_t len = npos) const;
- s.substr(a, b):pos = a, len = b
- s.substr(a):pos = a, len = npos
- 返回s从pos开始,长度为len的子串
- 如果pos > s.size(),就会抛出out_of_range的异常
- O(len)
find()
返回查找元素第一次的第一个位置 ,未找到则返回string::npos(-1)
size_t find (const string& str, size_t pos = 0) const noexcept;
- 从pos开始查找,返回第一次找到str的位置
- 如果没有找到,就返回string::npos(-1)
- O(s1.size() * s2.size())
size_t find (char c, size_t pos = 0) const noexcept;
- 从pos开始查找,返回第一次找到c的位置
- 如果没有找到,就返回string::npos(-1)
- O(s1.size())
clear()
- O(1)
insert()
string& insert (size_t pos, const string& str);
- 从pos开始插入str
- O(s.size())
void insert (iterator p, InputIterator first, InputIterator last);
- 在p位置插入str[first:last]
- O(s.size())
erase()
iterator erase (const_iterator p);
- O(s.size())
string& erase (size_t pos = 0, size_t len = npos);
iterator erase (const_iterator first, const_iterator last);
- O(s.size())

