万能模板
#include<bits/stdc++.h>
数组长度
size_t n = sizeof(a)/sizeof(a[0]);
控制台输入数据的处理
(1)字符串——getline(cin,s)
#include<bits/stdc++.h>
using namespace std;int main()
{string s1,s2;getline(cin,s1);getline(cin,s2);cout<<"s1"<<s1<<endl;cout<<"s2"<<s2<<endl;return 0;
}
(2)字符串转为整数
int num = stoi(str);
&和*
&用法:
-
在变量声明的时候。表示引用类型的变量(必须有另外一个变量赋值给该变量,否则不给编译)
-
不声明表取地址。
*用法:
-
在变量声明的时候,*表示该变量是一个指针变量;
-
不声明表取值(通常是把内存地址赋给一个指针类型的变量,然后通过 “ *变量名 ”来取出内存地址的值)
全局变量的默认值
1、表示数字的变量类型默认值都为0
2、bool型默认值为false
3、string型默认值为空字符串
4、char 型比较特殊。char类型默认值为’\0’,
动态数组
vector<int> vec;//声明一个存放int型的向量vec.push_back(1);//在vector的末尾插入新元素vector<int>::iterator it;//在迭代器的前面插入新元素it=vec.begin();vec.insert(it,5);//在第一个元素前面插入5vec.pop_back();//删除最后一个元素vec.erase(vec.begin());删除指定位置的元素//向数组一样利用下标进行访问
vector<int> a;
for(int i=0;i<a.size();i++){cout<<a[i];
}
对角线VS反对角线
if(i==j||i+j==n-1){ //i==j是正对角线,i+j==n-1是反对角线
质数
//质数的概念:除1和本身不能被其他数整除的数:2、3、5、7....
for(int i=2;i<101;i++){int f=1;for(int j=2;j<=sqrt(i);j++){if(i%j==0){f=0;break;}}if(f==1) cout<<i<<endl;}
类
class Car{public:string brand;Car(string d);
};//构造函数
Car::Car(string d){brand=d;
} int main() {Car c1("adsf");cout<<c1.brand;return 0;
}
类默认参数为私有属性
字母
for(char i='a';i<='z';i+=2){cout<<i<<" ";
}
for (char i='z';i>='a';i-=2){cout<<i<<" ";
}
数字
(s[i]>='0'&&s[i]<='9')
需要cstdio头文件
printf(“%s”,s1)不包括结束标志符
puts(字符串名称) 输出一个字符串、一个换行符,等价printf(“%s\n”,a)
getchar():输入单个字符数据,数字也算字符
cstring
strcpy(s1,s2);//将字符串2前n个字符复制到字符串1后,返回字符串1的值
strcmp(s1,s2);//s1与s2自左向右比较字符串的大小,>+,=0,<-
strlwr():将大写字母转为小写
strupr():将小写字母转为大写
选择排序
第一轮VS每一轮:选择最小的放在对应的位置。
void selectionSort(int arr[], int n) {for (int i = 0; i < n - 1; ++i) {// 记录最小元素的索引int minIndex = i;// 在未排序部分查找最小值及其索引for (int j = i + 1; j < n; ++j) {if (arr[j] < arr[minIndex]) {minIndex = j;}}// 将当前位置与最小值交换swap(arr[i], arr[minIndex]);}
}
//选择排序for(int i=0; i<n-1; i++) {int minIndex=i;//假设当前最小值为第一个位置的数。for(int j=i+1; j<n; j++) {if(strcmp(cname[k],cname[j])>0) {minIndex==j;//找到的是j对应最小的}}strcpy(t,cname[minIndex]);strcpy(cname[minIndex],cname[i]);strcpy(cname[i],t);}