全局变量的好处与弊端
全局变量可以避免使用指针,在很多对于数组在多个函数使用的时候,可以设置成全局变量,这样该数组就是公用的. 但是,当对于全局变量要重新赋值(比如:该全局变量涉及计数 ,要对该全局变量进行置空操作).
二进制转十进制
int toDec1(int a) // 注意包含 #include<math.h>
{
int b=0,m,k=0;
while (a!=0)
{
m=a%10;
a/=10;
b+=m*pow(2,k++);
}
return b;
}
在[m,n]之间产生随机数(小数)
// 获取随机数
float getRandData(int min,int max)
{
float m1=(float)(rand()%101)/101; // 计算 0,1之间的随机小数,得到的值域近似为(0,1)
min++; //将 区间变为(min+1,max),
//计算 min+1,max 之间的随机整数,得到的值域为[min+1,max]
float m2=(float)((rand()%(max-min+1))+min);
m2=m2-1; //令值域为[min,max-1]
return m1+m2; //返回值域为(min,max),为所求随机浮点数
}
睡眠函数
#include <unistd.h> // 用于sleep
sleep(1); // 睡眠一秒
txt文件读写
FILE *fp = NULL; // 文件指针
// 写进文件
fp = fopen("test.txt", "w+"); // 保存到test.txt
fputs("这里是我输入的内容\n", fp);
fclose(fp); //记得用完关闭文件
// 读文件
char str[2000] = {0}; // 存放输入的字符串
fp = fopen("test.txt", "r");
fgets(str, 102400, (FILE*)fp); //gets会读取空格,遇到换行就结束,这里str必须为字符数组
fclose(fp);
memset()函数:清空字符数组函数
功能:
多用于清空数组
使用:
# include<iostream>
# include <string.h>
using namespace std;
int main()
{
char a[] = {'1','2','d'};
int len = sizeof(a)/sizeof(a[0]);
for(int i = 0;i<len;i++)
cout<<a[i]<<" ";
memset(a,'\0',sizeof(a));
for(int i = 0;i<len;i++)
cout<<a[i]<<" ";
return 0;
}
返回数组元素个数
char a[] = {'1','2','d'};
int len = sizeof(a)/sizeof(a[0]);
C++库栈的调用
#include<stack>
stack<int> s; // 定义open表
s.empty(); //如果栈为空则返回true, 否则返回false;
s.size(); //返回栈中元素的个数
s.top(); //返回栈顶元素, 但不删除该元素
s.pop(); //弹出栈顶元素, 但不返回其值
s.push(); //将元素压入栈顶
C++队列的调用
#include<queue>
queue< int > q;
q.empty(); //如果队列为空返回true, 否则返回false
q.size(); //返回队列中元素的个数
q.front(); //返回队首元素但不删除该元素
q.pop(); //弹出队首元素但不返回其值
q.push(); //将元素压入队列
q.back(); //返回队尾元素的值但不删除该元素
vector
vector std::vector v 或者 vector v 首尾指针:v.begin() v.end(); 赋值:vecotr(a,a+5); v.push_back(); v.pop_back(); v.empty(); v.insert(); 常用:v.insert(v.begin(),2,5); auto x = v.erase(v.begin()+5); // 删除指定位置 swap(v[0].v[v.size()-1]) // 交换 v.clear(); // 清空数组
结构体数组根据指定键排序
#include <iostream>
#include <algorithm>
using namespace std;
struct EMP{
int startAddress;
int length;
}emp[20];
//按排列要求写比较函数 此处升序
bool cmp(EMP a, EMP b)
{
return a.startAddress < b.startAddress;
}
int main()
{
emp[0].length = 1;
emp[1].length = 0;
emp[2].length = -1;
emp[0].startAddress = 3;
emp[1].startAddress = 2;
emp[2].startAddress = 1;
cout<<"排序前:"<<endl;
for(int i=0;i<3;i++)
cout<<emp[i].startAddress<<" "<<emp[i].length<<endl;
cout<<endl;
sort(emp,emp+3,cmp); // 排序
cout<<"排序后:"<<endl;
for(int i=0;i<3;i++)
cout<<emp[i].startAddress<<" "<<emp[i].length<<endl;
cout<<endl;
}
char类型转string类型
#include <iostream>
using namespace std;
string charToString(char p)
{
char tmp[1]; // 定义char数组
tmp[0] = p;
string x = tmp;
return x;
}
int main()
{
char p='x';
string X = charToString(p);
cout<<X;
}
char和int类型互相转换
#include <iostream>
using namespace std;
int main()
{
// 数字字符转数字整型
char ch='9';
int nine = ch-'0';
cout<<nine<<endl;
// 数字整型转数字字符
int x = 8;
char ch_x = x+'0';
cout<<ch_x;
}