C++ 常用泛型算法


前言


string

声明一个字符串变量很简单:
string Str;
这样我们就声明了一个字符串变量,但既然是一个类,就有构造函数和析构函数。上面的声明没有传入参数,所以就直接使用了string的默认的构造函数,这个函数所作的就是把Str初始化为一个空字符串。String类的构造函数和析构函数如下:
a) string s; //生成一个空字符串s
b) string s(str) //拷贝构造函数 生成str的复制品
c) string s(str,stridx) //将字符串str内“始于位置stridx”的部分当作字符串的初值
d) string s(str,stridx,strlen) //将字符串str内“始于stridx且长度顶多strlen”的部分作为字符串的初值
e) string s(cstr) //将C字符串作为s的初值
f) string s(chars,chars_len) //将C字符串前chars_len个字符作为字符串s的初值。
g) string s(num,c) //生成一个字符串,包含num个c字符
h) string s(beg,end) //以区间beg;end(不包含end)内的字符作为字符串s的初值
i) s.~string() //销毁所有字符,释放内存

s.substr();//返回s的全部内容
s.substr(11);//从索引11往后的子串
s.substr(5,6);//从索引5开始6个字符

to_string

将整数转换为字符串表示形式

inline string to_string(int __val)

inline string to_string(unsigned __val)
inline string to_string(long __val)
inline string to_string(unsigned long __val)
inline string to_string(long long __val)
inline string to_string(unsigned long long __val)
inline string to_string(float __val)
inline string to_string(double __val)
inline string to_string(long double __val)

stoi

inline int stoi(const string& __str, size_t* __idx = 0, int __base = 10)

long stol()

标准库名和头文件

<cstdlib>

abort, free

<numeric>

accumulate

<memory>

allocator, auto_ptr

<array>

array

<new>

bad_alloc, nothrow, nothrow_t

<iterator>

begin, end, inserter

<functional>

bind

<algorithm>

copy, count, fill, fill_n, find…

<deque>

deque

<stdexcept>

out_of_range

<cstddef>

ptrdiff_t

<string>

stoi

<cstring>

strcmp, strcpy, strlen, strncpy

泛型算法

find

template <class InputIterator, class T>
InputIterator find(InputIterator first, InputIterator last, const T& value)
{
    while(first != last && value != *first) 
        ++first;
    return first;
}

count(beg, end, val)

count_if(beg, end unaryPred)

for_each(beg, end, unaryOp)

accumulate(first, last, c)

max(a, b)

min(a, b)

reverse(first, last)

sort(first, last)

fill(beg, end, val)

fill_n(dest, cnt, val)

copy(beg, end, dest)

copy_n(beg, n, dest)


总结

分类:

  • 非修改式序列操作;
    • find, for_each
  • 修改式序列操作;
    • transform, random_shuffle, copy
  • 排序和相关操作;
    • sort
  • 通用数字运算。
    • accumulate

前三种头文件为<algorithm>,第四组为numeric

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值