📅  最后修改于: 2023-12-03 15:27:22.714000             🧑  作者: Mango
这里是一些可以帮助竞争编程初学者快速提高 C++ 程序设计能力的一些技巧。
STL(标准模板库)是 C++ 一个非常有用的应用程序库,它包括许多用于容器、算法和迭代器的模板类和函数。通过使用 STL,可以更快地编写代码,并提高代码质量。
下面是一些用于各种 STL 容器(例如 vector,map,set,等)中的常用函数。
使用 push_back
函数来在 vector 的尾部追加元素。
vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
使用数组下标的形式来访问 vector 中的元素。
vector<int> v = {1, 2, 3};
cout << v[0] << ' ' << v[1] << ' ' << v[2] << endl;
使用 size
函数来获取 vector 中的元素数量。
vector<int> v = {1, 2, 3};
cout << v.size() << endl; // Output: 3
使用 insert
函数将元素插入 set。
set<int> s;
s.insert(1);
s.insert(2);
s.insert(3);
使用迭代器来访问 set 中的元素。
set<int> s = {1, 2, 3};
for (auto x : s) {
cout << x << ' ';
}
cout << endl;
使用 insert
函数将键值对插入 map。
map<int, int> m;
m.insert(make_pair(1, 10));
m.insert(make_pair(2, 20));
m.insert(make_pair(3, 30));
使用迭代器来访问 map 中的键值对。
map<int, int> m = {{1, 10}, {2, 20}, {3, 30}};
for (auto x : m) {
cout << x.first << ' ' << x.second << endl;
}
在竞争编程中,输入输出是非常重要的一部分。下面是一些处理输入输出的技巧。
使用 getline
函数来读入一行字符串。此函数将一行字符串读入一个 string 对象中。
string str;
getline(cin, str);
使用输入操作符 >>
来读入多个数据,输入数据时用空格、制表或换行符来分隔多个数据。
int a, b, c;
cin >> a >> b >> c;
使用 printf
函数类似的语法来格式化输出。例如,要输出两位小数的浮点数,可以使用以下代码。
double x = 3.14159265;
printf("%.2lf\n", x);
在许多竞争编程问题中,字符串处理是一个常见的任务。下面是一些用于字符串处理的函数。
使用 length
函数来获取字符串长度。
string str = "hello";
cout << str.length() << endl; // Output: 5
使用 substr
函数来截取字符串。
string str = "hello";
cout << str.substr(1, 3) << endl; // Output: ell
使用 find
函数来查找字符串中的子串。
string str = "hello";
int pos = str.find("ell");
cout << pos << endl; // Output: 1
在一些竞争编程问题中,需要使用一些标准的数学函数。下面是一些常用的数学函数。
使用 ceil
函数来将一个浮点型向上取整。
double x = 3.14;
cout << ceil(x) << endl;
使用 floor
函数来将一个浮点型向下取整。
double x = 3.14;
cout << floor(x) << endl;
使用 round
函数来将一个浮点型四舍五入到最近的整数。
double x = 3.5;
cout << round(x) << endl;
使用 pow
函数来计算一个数的幂次方。
double x = 2;
double y = pow(x, 3);
cout << y << endl;
使用 tgamma
函数来计算一个数的阶乘。
int n = 5;
double x = tgamma(n + 1);
cout << x << endl; // Output: 120.0
使用这些技巧,初学者可以更加快速轻松地提高 C++ 竞争编程的能力。