C++_标准库和第三方库

标准库

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()函数获得.
posted @ 2022-05-20 08:45  辰令  阅读(597)  评论(0编辑  收藏  举报