1.gets()函数
读取一行输入的字符串 回车键结束。
em:char str[10];
gets(str);
把输入在缓冲区的字符串保存在了str数组;
2.判断字符是否是数字
char a='4'
if(a>='0'&&a<='9')
3.raid5损坏的
一个数异或运算0,的结果是它本身
4.switch(小明放学)
不加break就不会跳出switch结构,不管后面条件是否符合都会执行,直到遇到第一个break才会跳出switch结构
二、switch起到的作用类似于跳转,满足switch的条件会跳转到对应的case下执行代码。
如果不加break,代码会从那开始执行,一直执行到最后,所以不符合case的语句也会被执行。
有一点大数倾向的题,要使用long long 数据类型
5.CIDR合并
0x 开头的数据表示十六进制
6.vector
迭代器:vector<int>::iterator it;
for(it=vector.begin();it!=vector.end();it++)
cout<<*it;
排序: sort(vector.begin(),vector.end(),compare)//降序
bool compare(int a, int b)
{
return a>b;
}
反转:reverse(vector.begin(),vector.end());
构造函数
- vector():创建一个空vector
- vector(int nSize):创建一个vector,元素个数为nSize
- vector(int nSize,const t& t):创建一个vector,元素个数为nSize,且值均为t
- vector(const vector&):复制构造函数
- vector(begin,end):复制[begin,end)区间内另一个数组的元素到vector中
7.使用#include<bits/stdc++.h>可以包含所有库函数所在头文件,不建议使用。
8.注意有没有输出要求有空格分隔,注意数字范围有没有超过int 表示范围2的32次方,大概十亿左右。
9.同一个问题,思考最优解题方法
10.需要声明二维数组的位置可以 在main函数之前 声明一个不超过最大值大小的数组
11.map 不能根据value 进行排序,要利用pair类型在vector中用sort函数进行排序,
12.puts()函数相当于printf函数末尾自动添加换行符。
前两道题是送分题,第三道题一般是字符串处理的问题。
13.
string s="fsfa";
for(auto c:s)
对于S中的每个字符
for(auto&c:s)
s中每个字符的引用,赋值语句将改变s中的字符。 变成小写字符 c=tolower(c);
14.复杂的题目用 struct定义比较方便
15.常用的string 函数:
string &insert(int p,const string &s); //在p位置插入字符串s
string &replace(int p, int n,const char *s); //删除从p开始的n个字符,然后在p处插入串s
string &erase(int p, int n); //删除p开始的n个字符,返回修改后的字符串
string substr(int pos = 0,int n = npos) const; //返回pos开始的n个字符组成的字符串
void swap(string &s2); //交换当前字符串与s2的值
string &append(const char *s); //把字符串s连接到当前字符串结尾
void push_back(char c) //当前字符串尾部加一个字符c
const char *data()const; //返回一个非null终止的c字符数组,data():与c_str()类似,用于string转const char*其中它返回的数组是不以空字符终止,
const char *c_str()const; //返回一个以null终止的c字符串,即c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同,用于string转const char*
string 删除最后一位 : str.erase(str.end()-1);
string类型的sort 先比较第一个字符,在比较后面的字符
本文涵盖了C++编程中的关键技巧,包括字符串处理、数组操作、数据类型选择及优化解题策略。深入探讨了vector容器的使用,如迭代器遍历、排序、反转和构造函数,以及map和CIDR合并的高级应用。同时,提供了处理大数问题和常见算法挑战的实用建议。
1019

被折叠的 条评论
为什么被折叠?



