一个超好用的c++网站:http://www.cplusplus.com/reference/string/string/erase/

一、函数头中包含的函数

1.qsort函数对数组、结构体等进行排序

#include <stdlib.h>//必须用stdlib.h,没用.h不用namespace不行

参数:1待排序数组首地址 2数组中待排序元素数量 3各元素的占用空间大小 4指向函数的指针,用于确定排序的顺序

eg:

(1)重写cmp,固定参数,变化的只是比较内容

int cmp(const void *a,const void *b){
return (*(XianDuan*)b).xd_num - (*(XianDuan*)a).xd_num;

}

此处为降序,后者大于前者时,交换位置;a-b为升序

此处(*(XianDuan*)b).xd_num进行强转时,最前面的*不能丢,因为这里用的是指针而非引用,*b表示访问其值,另外:使用void* (void指针)类型,在给指针赋值时,必须把void指针强制转换为所需要类型的指针以保证赋值的正常进行。(void*见:https://www.cnblogs.com/sybil-hxl/p/10422649.html

(2)调用qsort函数

qsort(xd,num,sizeof(struct XianDuan),cmp);

2.使用freopen输入重定向,输入数据将从in.txt文件中读取

freopen("G:/in.txt","r",stdin);

必须使用using namespace std;否则不能使用

3.C++的char数组与string对象相互转化

char t[100];
strcpy(t, s2.c_str());//函数头<string.h>或<cstdlib>

由于strtok方法参数只能是char[]和char*必须转化

参考:https://www.cnblogs.com/fnlingnzb-learner/p/6369234.html

4.int和string转化

long int strtol (const char* str, char** endptr, int base);
str:C-string beginning with the representation of an integral number.char型数组
endptr:
Reference to an object of type char*, whose value is set by the function to the next character in str after the numerical value.
This parameter can also be a null pointer, in which case it is not used.
base:
Numerical base (radix) that determines the valid characters and their interpretation.
If this is 0, the base used is determined by the format in the sequence (see above).

int len = strtol((v1[i].substr(t1+1,t2-t1-1)).c_str(),NULL,0);//字符串转为long int类型,函数头<cstdlib>

由于vc6.0实在太难用,只支持86%的C++,stoi等函数都不能用,只能用这个凑合。java多简单。

5.char转为string

这个,找不到好办法??

6.<algorithm>中函数

(1)void reverse (BidirectionalIterator first, BidirectionalIterator last);//起始地址,中值地址

vector<int> s;

for(int i=0;i<10;i++){

  s.push_back(i+1);

}

reverse(s.begin(),s.end());

7.<string.h>/<cstring>中函数

(1)char * strrev(char * str);//字符数组表示的字符串翻转

char s[]="hello";
strrev(s);

8.<cstdlib>中函数

(1)char *  itoa ( int value, char * str, int base );

整型转为字符数组表示的字符串,参数:整数,字符数组,进制,返回值:字符数组

int n = 123;
char a[10];
itoa(n,a,10);

(2)int atoi (const char * str);

字符数组表示的字符串转为整型,参数:字符数组,返回值:整型数据

char a[]=“1234”;
int n = atoi(a);

二、string类的函数

1.string& erase (size_t pos = 0, size_t len = npos);

pos:

Position of the first character to be erased.
If this is greater than the string length, it throws out_of_range.
Note: The first character in str is denoted by a value of 0 (not 1).
len:

Number of characters to erase (if the string is shorter, as many characters as possible are erased).
A value of string::npos indicates all characters until the end of the string.

2.size_t pos1 = s.find(";",index);

每次使用find函数时,不要忘记第二个参数(开始查询下标),这个每一轮查询都不一样,这个是查完整个字符串的保证

size_t,本质是unsigned int,用typedef起了个名

3.s.substr(pos1,pos2-pos1);

第一个参数是起始位置,第二个参数是长度

c/c++的常用函数和STL使用的更多相关文章

  1. 【算法专题】工欲善其事必先利其器—— 常用函数和STL

    一.    常用函数 #include <stdio.h> int getchar( void );               //读取一个字符, 一般用来去掉无用字符 char *ge ...

  2. 常用函数和STL

    #include <bits/stdc++.h> using namespace std; #define PI acos(-1.0) int main() { printf(" ...

  3. C++——STL之vector, list, deque容器对比与常用函数

    STL 三种顺序容器的特性对比: vector 可变数组,内存空间是连续的,容量不会进行缩减.支持高效随机存取,即支持[]和at()操作.尾部插入删除效率高,其他位置插删效率较低: list 双向链表 ...

  4. STL algorithm 头文件下的常用函数

    algorithm 头文件下的常用函数 1. max(), min()和abs() //max(x,y)和min(x,y)分别返回x和y中的最大值和最小值,且参数必须时两个(可以是浮点数) //返回3 ...

  5. STL之map与pair与unordered_map常用函数详解

    STL之map与pair与unordered_map常用函数详解 一.map的概述 map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称 ...

  6. STL之vector常用函数笔记

    STL之vector常用函数笔记 学会一些常用的vector就足够去刷acm的题了 ps:for(auto x:b) cout<<x<<" ";是基于范围的 ...

  7. oracle常用函数及示例

    学习oracle也有一段时间了,发现oracle中的函数好多,对于做后台的程序猿来说,大把大把的时间还要学习很多其他的新东西,再把这些函数也都记住是不太现实的,所以总结了一下oracle中的一些常用函 ...

  8. 总结js常用函数和常用技巧(持续更新)

    学习和工作的过程中总结的干货,包括常用函数.常用js技巧.常用正则表达式.git笔记等.为刚接触前端的童鞋们提供一个简单的查询的途径,也以此来缅怀我的前端学习之路. PS:此文档,我会持续更新. Aj ...

  9. [转]SQL 常用函数及示例

    原文地址:http://www.cnblogs.com/canyangfeixue/archive/2013/07/21/3203588.html --SQL 基础-->常用函数 --===== ...

随机推荐

  1. Python的进程与线程--思维导图

    Python的进程与线程--思维导图

  2. Redis基础入门

    学习redis之前,要了解NoSQL.. 一.NoSql概述 由于关系型数据库很难实现: 1.高并发读写 2.海量数据的高校率存储和访问 3.高可扩展性和高可用性 所以出现NoSql,(Not Onl ...

  3. [转]MYSQL 创建存储过程

    MySQL 存储过程是从 MySQL 5.0 开始增加的新功能.存储过程的优点有一箩筐.不过最主要的还是执行效率和SQL 代码封装.特别是 SQL 代码封装功能,如果没有存储过程,在外部程序访问数据库 ...

  4. 苹果IOS下text-shadow与box-shadow失效的解决办法

    加入以下样式,可以解决苹果IOS下text-shadow与box-shadow失效的问题 -webkit-appearance: none

  5. EM算法(期望最大化算法)

    适用场景:存在为未测变量的情况下,对模型参数进行估计. EM算法: input:观测数据Y,为观测数据Z,联合分布P(Y,Z|θ),条件分布P(Z|Y,θ) output:模型参数θ 步骤: (1)选 ...

  6. 【SoftwareTesting】Homework3

    (a) (b) 数组越界问题 (c) n=0 (d) 点覆盖:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] 边覆盖:[(1,2),(2,3),(3,4),(4,5) ...

  7. 初读"Thinking in Java"读书笔记之第六章 --- 访问权限控制

    包:库单元 包内包含有一组类,他们在单一的名字空间下被组织在一起. 通过import ***.***.*可以将某个包下的所有类导入到当前文件中. 每个Java源文件最多只能有一个public类,且名称 ...

  8. 信号single

    信号 Django中提供了“信号调度”,用于在框架执行操作时解耦.通俗来讲,就是一些动作发生的时候,信号允许特定的发送者去提醒一些接受者. 1.Django内置信号 Model signals pre ...

  9. python网络编程(图片传输)

    发送端: from socket import * s=socket() s.connect(('127.0.0.1',8888)) f=open('mm.jpg','rb') while True: ...

  10. better-scroll无法滚动的问题。

    better-scroll无法滚动的问题.1遇见better-scroll(以下简称:BS)无法滚动,可从两方面去考虑.一是层级关系出错,二是计算高度出错.###1,层级关系BS的基本结构是:一个wr ...