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

  • Post author:
  • Post category:其他




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)






n





lo

g











2


















(


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 的位置。



版权声明:本文为weixin_42175045原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。