• 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()函数获得.
  • 相关阅读:
    [CF528D] Fuzzy Search
    [WC2013] 糖果公园
    [APIO2011] 方格染色
    [CTSC2017] 吉夫特
    [HNOI/AHOI2018] 转盘
    [CTSC2008] 网络管理
    [HAOI2018] 苹果树
    [SCOI2016] 萌萌哒
    git创建分支并提交项目
    git 常规操作
  • 原文地址:https://www.cnblogs.com/ytwang/p/16291091.html
Copyright © 2020-2023  润新知