数组
int arr[n][n];
fill(marked + 1, marked + n +1, false);
Vector
vector<int> a;
vector<bool> used(10, false);
vector<vector<int>> arr(n, vector<int>(n, 1));
a.push_back();
a.pop_back();
a.erase(a.begin());
a.resize(100, vector<int>(100, 0));
sort(a.begin(), a.end(), greater<int>());// 降
sort(a.begin(), a.end(), less<int>());// 升
sort(a.begin(), a.end(), [](int& a1, int& a2){
return a1 < a2;
});//升
a.insert(a.end(), b.begin(), b.end());
int maxVal = *max_element(g.begin(), g.end());
int minVal = *min_element(g.begin(), g.end());
string
string a[100];
string a = "";
string a(n, '.');
string a = "Hello“;
string b = " Word!";
string c = a + b;
string a = "Hello“;
string b = a.substr(1, 2);// b 为 el
a.pop_back();
reverse(a.begin(), b.end());
to_string(a);
stoi(a);
stod(a);
for (auto &c : str) {
c = tolower(c);
}
a.length();
strcmp(a, b);// 大于0则大 等于0则等 小于0则小
char
string a(1, b);
tolower(c);
toupper(c);
isalnum(a);// 字符是否为字母和数字
isdigit(a);// 字符是否为字母和数字
isalpha(a);// 字符是否为字母和数字
islower(a);// 字符是否为字母和数字
isupper(a);// 字符是否为字母和数字
isspace(a);// 字符是否为字母和数字
字符对应的ascll码从65 - 90为大写,97 - 122 为小写,48 - 57 对应字符的0 - 9
set
set<string, [](string a1, string a2){return a1[0] > a2[0];}> s;
unordered_set us;
s.insert("ada");
s.erase("ada");
s.find("ada") == s.end();// 不在
s.find("ada") != s.end();// 在
for (auto str : s) {
}
s.size()
map
map<string, int> mp;
mp.insert(make_pair(a1, a2));
mp.erase(a1);
mp.find("ada") == mp.end();// 不在
mp.find("ada") != mp.end();// 在
for (auto entry:mp) {
key = entry.first;
value = entry.second;
}
mp.size();
pair<int, string> p1(1, "one");
pair<int, string> p2 = make_pair(2, "two");
Stack
stack<int> s;
s.push(10);
s.empty();
s.top();
s.pop();
s.size();
Queue
queue<int> q;
q.push(10);
q.empty();
q.front();
q.pop();
q.size();
ListNode
struct ListNode {
int value;
ListNode* next;
};
ListNode* l;
l -> next = ;
l -> value = ;
Deque
deque<int> dq;
dq.push_back();
dq.push_front();
dq.pop_back();
dq.pop_front();
二叉树
struct treeNode {
int val;
treeNode* left;
treeNode* right;
};
优先队列priority_queue
priority_queue<int, vector<int>, function<bool(int, int)>> pq(
[](int a, int b) {
return a > b;
}
);
pq.push();
pq.empty();
pq.top();
pq.pop();
图
vector<vector<int>> graph;
输入输出问题
char c = getchar();
putchar('2');
while(cin >> str) {
}
getline(cin, str);
输入字符串不用& scanf("%s%d", s, &l);
printf("%07d\n", p);// 不足左补0
printf("%-7d\n", p);// 不足右补空格
printf("%7d\n", p);// 不足左补空格
printf("%.7d\n", p);
int 2147383647
细节注意&技巧
sort(ves.begin(),ves.end(),[](record a,record b){
return a.a>b.a;
});
for(int i = 0; i < n; i++){
if (i != 0 && s[i].grade != s[i-1].grade) j = i;
s[i].rank = j + 1;
}
floor(2.2);// 向下取整
ceil(2.2);// 向下取整
round(2.2);// 四舍五入
pow(2, 3);// 2的3次方
sqrt(4);// 4开平方
auto lower = lower_bound(v.begin(), v.end(), target);
int index = lower - v.begin();
auto upper = upper_bound(v.begin(), v.end(), target);
int index = upper - v.begin();
排序前闭后开,使用引用