常用函数和STL
一. 常用函数
#include <stdio.h>
int getchar( void );
char *gets( char *str );
#include <stdlib.h>
void * malloc( size_t 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>
double asin( double arg );
double sin( double arg );
double exp( double arg );
double log( double num );
double sqrt( double num );
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) );
int sprintf( char *buffer, const char *format, ... );
sprintf(s, "%d%d", 123, 4567);
int sscanf( const char *buffer, const char *format, ... );
Sample:
char result[100]="24 hello", str[100]; int num;
sprintf( result, "%d %s", num,str );
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() 交换字符串