常用的 c++ 函数汇总(持续更新)

1.数组、列表类

1. 列表初始化

vector<int> nums //没有分配内存
vector<int> nums(list) //将 list 赋值到 nums
vector<int> nums={1,2,3…} //直接赋值
vector<int> nums(7,2) //有7个元素,每个元素为2.(nums(7)表示有7个元素,但是没有赋值。)

参考:vector 的六种 创建和初始化方法

2.列表数值插入

insert()

v.insert(v.begin(),8);//在最前面插入新元素。  
v.insert(v.begin()+2,1);//在迭代器中第二个元素前插入新元素  
v.insert(v.end(),3);//在向量末尾追加新元素

参考: c++ insert

push_back()

vector.push_back(line)
//在后面插入

2. 常用的 STL 函数

1. 排序函数: sort()

功能:对容器进行排序。
PS:适用于:array、vector、deque 三种容器。

#include < algorithm> 
//necessary file
sort(myvector.begin(), myvector.begin() + 4, greater<int>());
// 第三个参数可选,默认为升序排列。
sort(myvector.begin(), myvector.begin() + 4, less<int>());
//降序
reverse(vi.begin(),vi.end()); /// 从大到小 
//或者 reverse 函数。

时间复杂度为: n log ⁡ 2 ( n ) n\log_2(n) nlog2(n)

参考
1.C++ sort()排序函数用法详解
2. 自定义排序函数

2. 排序+合并:merge()函数

功能: 对排序规则一致的序列进行组合排序。

#include < algorithm> 
//necessary file
//该数组中存储有 2 个有序序列
int first[] = { 5,10,15,20,25,7,17,27,37,47,57 };
//用于存储新的有序序列
vector<int> myvector(11);
//将 [first,first+5) 和 [first+5,first+11) 合并为 1 个有序序列,并存储到 myvector 容器中。
merge(first, first + 5,  first + 5, first +11 , myvector.begin());
//1,2 指标指代第一个有序数组,3,4指代第二个,5代表重排之后存贮的数组。

//将 [first,first+5) 和 [first+5,first+11) 合并为 1 个有序序列。inplace_merge 存储在first 数组中。
inplace_merge(first, first + 5,first +11);

参考: c++ merge() 用法

3. 查找:find()

底层代码:

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

调用的是

//在 vector 中找 30
it = find(myvector.begin(), myvector.end(), 30)
cout<<*it<<endl; //输出的是其it点上的内容。
//return 找到的位置,即指针

参考C++ find()函数用法详解

4. 交换:swap()

swap(a,b)
// 交换 a b 的位置。
  • 4
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值