vector
std::vector<int> numbers; // 声明一个空的整数向量
std::vector<std::string> names = {"Alice", "Bob", "Charlie"};
numbers.push_back(10); // 在向量尾部添加元素 10
numbers.push_back(20); // 在向量尾部添加元素 20
int firstElement = numbers[0]; // 使用索引访问第一个元素
int lastElement = numbers.back(); // 访问最后一个元素
for (const auto& element : numbers) {
// 对每个元素进行操作
std::cout << element << " ";
}
map 、 unordered_map
// 基于 hash 表
unordered_map<string, int> um;
um["name"] = 1;
um.insert(make_pair("age", 20));
// 返回 pair , 当返回 um.emdl() 的时候,就是没有查找到
cout << um.find("name")->second << endl;
cout << um.count("name1") << endl;
um.erase("age");
cout << um.size() << endl;
// 基于红黑树 , 保持有序性
map<string, int> mm;
mm.insert(make_pair("name", 12));
mm.insert(make_pair("aaa", 22));
// 返回指针
for (auto it = myMap.begin(); it != myMap.end(); ++it) {
std::cout << "Key: " << it->first << ", Value: " << it->second << std::endl;
}
// 返回引用
for (const auto& pair : myMap) {
std::cout << "Key: " << pair.first << ", Value: " << pair.second << std::endl;
}
// 直接使用
for(auto& [k,v]:cnt) {
}
set 、unordered_set
// 基于红黑树
set<int> ss;
ss.insert(10);
ss.insert(2);
// 查找元素
cout << *ss.find(10) << endl;
for (auto n: ss) {
cout << n;
}
for (int n: ss) {
cout << n;
}
ss.erase(10);
优先级队列 privority_queue
// 优先级队列
priority_queue<int> pq;
// 插入元素
pq.push(12);
pq.push(21);
// 默认最大堆
cout << "Top Element : " << pq.top() << endl;
pq.push(3);
while (!pq.empty()) {
cout << pq.top() << endl;
pq.pop();
}
// 最小堆
priority_queue<int, vector<int>, greater<int> > min_pq;
min_pq.push(30);
min_pq.push(20);
cout << min_pq.top() << endl; // 20
// 基于一个 vector 构建最大堆
priority_queue<int> q (nums.begin() , nums.end());
stack
stack<string> sk;
sk.push("anner");
sk.push("bnner");
while (!sk.empty()) {
cout << sk.top() << endl;
sk.pop();
}
queue
queue<int> qu;
qu.push(10);
qu.push(100);
while (!qu.empty()) {
cout << qu.front();
qu.pop();
}
deque
deque<int> de;
de.push_back(10);
de.push_front(20);
de.pop_front();
de.pop_back();
cout<<de.front()<<endl;
cout<<de.back()<<endl;
结构转换
// int 转 string
to_string(num);
// string 转 int
std::stoi(str)
stol stof stod
常用的内置函数
- abs
- min
- max
- sqrt
- ceil 不小于
- floor 不大于
algorithm 库
-
sort(begin , end)
-
reverse(begin , end)
-
find (begin , end , value)
-
count (begin , end , value)
-
next_permutation
-
isdigit(c)
-
isalpha(c)
-
isupper(c)
-
islower(c)
-
to_lower(c)
-
to_upper(c)
-
max_element (begin , end)
-
min_element(begin , end)
-
复习 c++刷题语法