zoukankan      html  css  js  c++  java
  • 【算法专题】工欲善其事必先利其器—— 常用函数和STL

    一.    常用函数

    #include <stdio.h>
    int getchar( void );               //读取一个字符, 一般用来去掉无用字符
    char *gets( char *str );          //读取一行字符串
    #include <stdlib.h>
    void * malloc( size_t size );     //动态内存分配, 开辟大小为 size 的空间
    void qsort( void *buf, size_t num, size_t size, int (*compare)(const void *, const void *) );                    //快速排序
    Sample:

    int compare_ints( const void* a, const void* b ) 
    {int* arg1 = (int*) a;        int* arg2 = (int*) b;
    if( *arg1 < *arg2 ) return -1;
    else if( *arg1 == *arg2 ) return 0;
    else return 1;}
    int array[] = { -2, 99, 0, -743, 2, 3, 4 };     int array_size = 7; 
    qsort( array, array_size, sizeof(int), compare_ints ); 
    #include <math.h>
    //求反正弦, arg∈[-1, 1], 返回值∈[-pi/2, +pi/2]
    double asin( double arg );
    //求正弦, arg为弧度, 弧度=角度*Pi/180.0, 返回值∈[-1, 1]
    double sin( double arg );
    //求e的arg次方
    double exp( double arg );
    //求num的对数, 基数为e
    double log( double num );
    //求num的根
    double sqrt( double num );
    //求base的exp次方
    double pow( double base, double exp );
    #include <string.h>
    //初始化内存, 常用来初始化数组
    void* memset( void* buffer, int ch, size_t count );
    memset( the_array, 0, sizeof(the_array) );
    //printf是它的变形, 常用来将数据格式化为字符串
    int sprintf( char *buffer, const char *format, ... );
    sprintf(s, "%d%d", 123, 4567); //s="1234567"
    //scanf是它的变形, 常用来从字符串中提取数据
    int sscanf( const char *buffer, const char *format, ... );

    Sample:
    char result[100]="24 hello", str[100];          int num;
    sprintf( result, "%d %s", num,str );//num=24;str="hello" ;
    //字符串比较, 返回值<0代表str1<str2, =0代表str1=str2, >0代表str1>str2
    int strcmp( const char *str1, const char *str2 );

    二.    常用STL

    [标准container概要]

    vector<T>                   大小可变的向量, 类似数组的用法, 容易实现删除

    list<T>                        双向链表

    queue<T>                    队列, empty(), front(), pop(), push()

    stack<T>                     栈, empty(), top(), pop(), push()

    priority_queue<T>        优先队列, empty(), top(), pop(), push()

    set<T>                        集合

    map<key,val>              关联数组, 常用来作hash映射

    [标准algorithm摘录]

    for_each()                    对每一个元素都唤起(调用)一个函数

    find()                      查找第一个能与引数匹配的元素

    replace()                  用新的值替换元素, O(N)

    copy()                     复制(拷贝)元素, O(N)

    remove()                     移除元素

    reverse()                     倒置元素

    sort()                      排序, O(N log(N))

    partial_sort()              部分排序

    binary_search()            二分查找

    merge()                   合并有序的序列, O(N)

    [C++ String摘录]

    copy()                         从别的字符串拷贝

    empty()                      判断字符串是否为空

    erase()                        从字符串移除元素

    find()                          查找元素

    insert()                        插入元素

    length()                       字符串长度

    replace()                     替换元素

    substr()                       取子字符串

    swap()                        交换字符串

  • 相关阅读:
    NX二次开发-测量投影距离
    NX二次开发-弹出选择文件夹对话框
    NX二次开发-获得图纸抑制尺寸的表达式UF_DRF_ask_controlling_exp
    NX二次开发-创建图纸尺寸表达式抑制UF_DRF_add_controlling_exp
    NX文件名与工程图名自动关联
    NX二次开发-删除功能区工具栏UF_UI_remove_ribbon
    NX二次开发-删除经典工具栏UF_UI_remove_toolbar
    NX二次开发-设置功能区工具栏的可见性UF_UI_set_ribbon_vis
    NX二次开发-创建功能区工具栏UF_UI_create_ribbon
    NX二次开发-设置经典工具栏的可见性UF_UI_set_toolbar_vis
  • 原文地址:https://www.cnblogs.com/KID-XiaoYuan/p/6349136.html
Copyright © 2011-2022 走看看