bits/stdc++.h
ios_base::sync_with_stdio(0);
- только если только cin
/cout
или только scanf
/printf
.
cin.tie(0);
cout.tie(0);
int
-> cin >> var
/cout << var
double
-> scanf("%lf", &var)
- если без sync_with_stdio
string
-> fgets(s, len, stdin)
/printf("%s", s)
Время (hh:mm
):
int h, m;
scanf("%d:%d", &h, &m);
printf("%02d:%02d", h, m);
cout.precision(10)
- точность всего числа
printf("%.6lf", ll)
std::endl
= '\n' << std::flush
cout.width(3); cout << 1; // [ 1]
cout << setw(5) << 2; // [ 2]
// Таблица
for(int i = 0; i < n; i++) {
for(int j = 0; j < m; j++) {
cout << a[i][j] << " \n"[j == m - 1];
}
}
while(cin >> x) { // До EOF
// Обрабатываем x
}
vector<int> vector1;
vector1.back();
vector1.push_back(); -> vector1.emplace_back();
(push_back = create + std::move, emplace_back = create)
sort(vector1.rbegin(), vector1.rend());
for(auto it = vector1.rbegin(); it != vector1.rend(); ++it)
for(auto &x : vector1) // изменения сохраняются
for(auto x : vector1) // измененяется копия
for(const auto &x : vector1)
vector< vector<int> > vector2;
vector<int> vector3[100]; // быстрее
vector1.shrink_to_fit();
int size = (int)vector1.size();
(int)x -> static_cast<int>(x)
vector<int> vector4;
vector4.reserve(199);
while(true) {
vector4.assign(10, 0);
vector4.resize(5);
break;
}
vector<bool> vb; // меньше места
bool ab[10]; // быстрее
set<int> set1 = {19, 10, 16};
set1.insert(x);
set1.emplace(x);
set1.extract() // move-конструктор
if(set1.count(x))
auto it = set1.find(16);
auto item = set1.lower_bound(16);
set1.merge(set2); // O(|set2|)
miltiset<int> multiset1;
multiset1.erase(multiset1.find(x)); // удалить 1 элемент
multiset1.erase(x); // удалить все элементы
map<int, string> map1;
map1.insert({3, "sab"});
map1[5] = "sab";
auto st1 = map1[5];
auto a = map1.at(5);
map<string, int> map1;
vector<string> strings;
for(string s : strings) {
~~map1[s] = (int)map1.size();~~ // sequence points!!!!!!
}
queue<int> queue1; // == deque
queue1.push(1);
queue1.front();
queue1.pop();
deque<int> deque1;
deque1.push_back();
deque1.push_front();
deque1.pop_back();
deque1.pop_front();
// pair< int, pair<string, double> > быстрее
tuple<int, string, double> tuple1 = {1, "st", 2.0};
int x = get<0>(tuple1);
double xx = get<2>(tuple1);
int y = get<int>(tuple1);
priority_queue<int> queue2;
queue2.push(1);
queue2.pop();
bitset<1000> bitset1;
bitset1.set(10);
bitset1[10] = true;
bitset1.reset(10);
bitset1[10] = false;
if(bitset1.test(10))
if(bitset1[10])
bitset1 <<= 10;
vector<int> weights;
bitset<100> can;
weights.emplace_back(10);
can.set(1);
for(int w: weights) {
can |= can << w;
}
cout << can.test(6);
reverse(weights.begin(), weights.end());
auto it = find(weights.begin(), weights.end(), 5);
max_element(weights.begin(), weights.end());
lower_bound(weights.begin(), weights.end(), 5); // не для сета!!! O(N log N)
sort(weights.begin(), weights.end());
weights.resize(size_t(
unique(weights.begin(), weights.end()) - weights.begin()
);
while(next_permutation(weights.begin(), weights.end()))
prev_permutation
x = clamp(x, 4, 5); // x < 4 -> 4; x > 5 -> 5; else: x
iota(weights.begin(), weights.end(), 0); // 0 1 2 3 4 5 6 7...
nth_element(weights.begin(), weights.begin() + weights.size() / 2, weights.end()); // K-ая порядковая статистика
gcd(a, b);
lcm(a, b);
__builtin_popcount(a);
string string1;
string s = string1.substr(4, 1);
string str = "11";
int t = stoi(str);
string st = to_string(t);
stringstream stringstream1;
stringstream1 << 13;
string string1;
stringstream1 >> string1;
Вытаскиваем дерамиду по неявному ключу из недр С++
#include <ext/rope>
using namespace __gnu_cxx
rope<int> x;
auto s = x.substr(10, 4);
x.erase(10, 4);
x.insert(x.mutable_begin(), s);
C++ STL: Policy based data structures
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
typedef tree<
int,
null_type,
less<int>,
rb_tree_tag,
tree_order_statistics_node_update
> ordered_set;
ordered_set == set + find_by_order + order_of_key
ordered_set ordered_set1;
ordered_set1.insert(1);
ordered_set1.insert(7);
ordered_set1.insert(2);
ordered_set1.insert(3);
ordered_set1.insert(9);
ordered_set1.insert(5);
auto x = *ordered_set1.find_by_order(5); // -> 9
auto y = ordered_set1.order_of_key(7); // -> 4