标准库
C++标准库,包括了STL容器,算法和函数等。
C++ Standard Library:是一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分。
Standard Template Library:标准模板库
C POSIX library : POSIX系统的C标准库规范
ISO C++ Standards Committee :C++标准委员会
C++ 第三方库
Boost 大量通用C++库的集合。
是为C++语言标准库提供扩展的一些C++程序库的总称。Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一
数据处理-科学计算
Eigen:做线性代数相关的操作,由于Eigen调用MKL、BLAS等高性能线性代数库做底层,
性能已经得到了足够的优化,而且又不用去学MKL、BLAS这些接口复杂的库,使用起来方便快捷。
GSL:这是一个大而全的数学库,GSL性能一般,线性代数方面的计算用更快的Eigen就好了,
不必用GSL里面的。使用GSL主要是用来调用它的一些别人已经写好的数值积分、微分等方面的函数,就不用自己去写了。
fftw3:最快的傅里叶变换库,而且里面的傅里叶变换还有并行模式,速度非常快!
图像类
MFC <Microsoft Foundation Class> 微软基础库
Qt 跨平台的应用程序和用户界面框架
GTK 开源的GUI库
ffmpeg
C语言开源项目
SQLite
C++中的swap函数:交换函数
--整型值互换--> 变量定义、初始化、赋值以及简单的内存
int t = 0;
t = a;
a = b;
b = t;
-- 数组种最大的值-最小值
#include<iostream>
#include<vector>
#include <climits>
using namespace std;
int main()
{
std::vector<int> nums = {2,4,6,6,9,10};
int max = INT_MIN ;
for(int i=0;i <= nums.size()-1 ;i++)
{if(max < nums.at(i))
swap(nums.at(i),max);
}
cout << max <<endl;
int arr[6]={2,4,8,6,12,10};
int min = INT_MAX;
int arr_len=sizeof(arr)/sizeof(arr[0]);
for(int i=0;i<arr_len-1;i++)
{
if(min >arr[i] )
{
min = arr[i];
}
}
cout << min <<endl;
return 0;
}
反转字符串
class Solution {
public:
void reverseString(vector<char>& s) {
for(int i = 0, j = s.size() - 1; i < j; i++, j--)
swap(s[i] = s[j]);
}
return;
};
数组中的第K个最大元素
class Solution{
public :
int findKthLargest(Vector<int> $nums,int k)
{
for(int i=0; i<k; i++)
{
for (int j=i+1; j <nums.size(); j++)
{
if(nums.at(j) > nums.at(i))
swap(nums.at(i),nums.at(j));
}
}
return nums.at(k-1);
}
};
冒泡排序
#include<iostream>
using namespace std;
int main()
{
int arr[6]={2,4,8,6,12,10};
int cnt =sizeof(arr)/sizeof(arr[0]);
for (int i = 0; i < cnt-1; i++)
{
for (int j = 0; j < cnt-1-i; j++)
{
if (arr[j] > arr[j + 1])
swap(arr[j], arr[j + 1]);
}
}
for (int i = 0; i < cnt ; i++)
cout << arr[i] << ' ';
return 0;
}
语法说明
一个vector对象,则v.at(n)和v[n]是一样的,
只不过前者会检查是否越界(因此花费的时间稍多),
而后者不会(后者越界会导致未定义行为)
大小通过 通过size()函数获得.