LeetCode刷题知识点总结(更新ING)
一、经验分享
待更............
二、知识点总结
1、 求一个vector定义的向量的长度( size()函数)
例:vector
长度: int size = nums.size() ****
2、不写排序代码对数组进行简单的升序排序( sort()函数)
例:vector
排序: sort(nums.begin(),nums.end()) 排序后的结果是原数组的升序排序
3、 break、continue、goto语句的使用
- break
作用:用于终止当前循环,且只能终止距离它最近的循环。
- continue
作用:该指令用于跳过本次循环余下的语句后转而判断是否需要执行下次循环;具体而言,在处理完当前操作后会转向判断条件是否满足从而决定是否继续执行下一轮循环;这一机制特别适用于针对最新执行过的那一层循环进行操作(例如for、while、do...while等常见循环结构)。
- goto
作用:goto语句可以让控制无条件地转移至同一函数内的被标记的语句。(然而,请尽量避免使用goto语句因为它会导致程序的控制流难以追踪从而使程序变得不易理解和难于修改)
格式:goto label; //直接跳转到label处,执行label冒号后的语句
......
......
label:
statement;
4、使用vector定义一维、二维向量
- 一维向量
1)vector
2)vector
3)vector
4)vector
5)vector
6)int a[7]={1,2,3,4,5,6,9,8};
vector
- 二维向量
1)vector<vector
vector<vector
5、针对vector对象的一些操作函数
- push_back()
作用:在vector定义的向量后插入一个元素。
vector
nums.push_back(5);
- pop_back()
作用:在vector定义的向量中,删除最后一个元素。
vector
nums.pop_back();
6、将char类型的字母转换成string类型的
**** vector
char nums = 'a' +3;
stringstream stream;
stream<<nums;
A1.push_back(stream.str()); //A1中存的就是string类型的字母
A1中的结果是:["d"]
7、nullptr
C++11引入了一个新的关键字nullptr 作为空指针常量。
char *p = nullptr;
一般在使用 = NULL的时候用nullptr替代,这样可以避免二义性问题。
8、- >的使用
->是指针的指向运算符,通常与结构体一起使用
9、scanf和printf的使用
int main()
{
int a, b;
scanf("%d%d", &a, &b);
printf("%d\n", a + b);
system("pause");
return 0;
}
- %d她默认是以空格分隔数字
- printf换行用\n
- 换行用\n

10、如果定义的数组过大,该如何解决
当数组规模较大时(超过10^6),建议将其定义在主函数外部以避免内存溢出问题。这样做可以有效防止程序因内存不足而崩溃运行;如果将变量定义在主函数内部,则可能无法满足其所需的最大内存需求。具体来说,在C/C++编程中,默认情况下局部变量由操作系统栈管理(占用的内存空间相对有限),而全局变量则来源于静态存储区域(可以预先分配较大的内存空间)。因此,在处理大规模数据时必须注意这种差异并采取相应的策略以确保程序正常运行
#include<iostream>
using namespace std;
int a[1000000];
int main()
{
for(int i = 0;i<1000000;i++)
{
a[i] = i;
}
return 0;
}
11、对数组中的每一个元素赋相同的值
- 对数组a赋相同的值:都赋值为0
int a[5] = {1,2,3,4,5};
memset(a,0,sizeof(a));
12、编程中遇到排序,直接使用sort函数
