C++操作总结(Updating)

全局变量的好处与弊端

  • 全局变量可以避免使用指针,在很多对于数组在多个函数使用的时候,可以设置成全局变量,这样该数组就是公用的.
  • 但是,当对于全局变量要重新赋值(比如:该全局变量涉及计数,要对该全局变量进行置空操作).

二进制转十进制

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;

}

猜你喜欢

转载自blog.csdn.net/weixin_43742062/article/details/109552312