1.准备
1.1.洛谷的使用
1.1.1.洛谷的编译错误
刷新⼀下就能看到编译错误的信息:
1.1.2.洛⾕WA(wronganswer)
这说明代码运⾏结果和预期不符,所有答案都是错误的,这⼀定代码写的有问题。
1.1.3.洛⾕部分⽤例通过
⼀个题⽬可能有多个测试⽤例,有部分测试⽤例通过,但是也有部分测试⽤例未通过,基本的原因是 代码考虑不周全。
1.1.4 程序运⾏时出现运⾏时问题
这种场景代码是程序编译没有语法问题,编译产⽣了可执⾏程序,程序运⾏时出现了问题,⽐如:段 错误、除数为0等。
1.1.4.1 段错误提⽰
1.1.4.2 除数为0的提⽰
1.1.5 题⽬运⾏有时间限制超时了
可能得的原因:
- 1. 代码中不⼩⼼,造成死循环了
- 2. 代码中算法复杂度太⾼,太耗时
1.2. ⽜客竞赛
1.2.1 编译错误
1.2.2 答案错误
这种情况说明,代码是没有语法问题的,但是程序运⾏的结果,是不符合题⽬预期的。
1.2.3 通过部分⽤例
1.2.4 运⾏超时
- 可能性:代码中出现了死循环,代码的算法复杂度确实是过⾼,太耗时。
- 解决办法:检查代码、优化程序
1.3.让Dev-C++支持C++11
在DevC++的使⽤过程中,有时候使⽤较新的语法,可能编译不过,提⽰错误,如下所⽰:
#include <iostream>
#include <string>
using namespace std;
int main() {
string s = "abc";
cout << "s:" << s << endl;
// 第一次尾删
s.pop_back();
cout << "s after first pop_back:" << s << endl;
// 第二次尾删
s.pop_back();
cout << "s after second pop_back:" << s << endl;
// 注意:如果再次调用 s.pop_back(),将会导致未定义行为,因为此时字符串已为空
// 但为了演示可能的错误处理,我们可以检查字符串是否为空再决定是否删除
if (!s.empty()) {
s.pop_back();
cout << "s after potential third pop_back (if not empty):" << s << endl;
} else {
cout << "Cannot pop_back from an empty string." << endl;
}
return 0;
}
pop_back是C++11这个版本中新增的成员函数,默认编译就会报错,那怎么解决呢?
菜单中,点击:⼯具->编译选项,打开
出现这样⼀个窗⼝:
勾选【编译时加⼊⼀下命令】,然后在下⽅的编译框中加⼊:
这样子就设置好了,我们重新编译一下
点击确定即可。 要想⽀持其他C++的标准也是⼀样的⽅法。
-std=c++14
-std=c++17
-std=c++20
...
1.4.Dev-C++分辨率低解决方法
因为Dev-C++很久不再更新,⽽且版本⽐较⽼,所现在显⽰器的⾼分辨率⽀持不好,所以看起来显⽰不 够清晰。 为了解决这个问题,可以这样做:
1. 找到DevC++的桌⾯图标,右击点击属性,如下图:
2. 在属性中,点击【兼容性】,在兼容性中,点击【更改⾼DPI设置】
3. 在这个⻚⾯