C++STL容器

数组

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();

排序前闭后开,使用引用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值