#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> vec;
vec.push_back(10); // 添加元素到末尾
vec.push_back(9); // 添加元素到末尾
int el = vec[0]; // 随机访问元素
vec.pop_back(); // 移除末尾元素
}
list:双向链表
#include <iostream>
#include <list>
using namespace std;
int main()
{
std::list<int> myList;
myList.push_back(10); // 在末尾插入元素
myList.push_front(20); // 在头部插入元素
myList.pop_back(); // 移除末尾元素
myList.pop_front(); // 移除头部元素
}
deque:双端队列
#include <iostream>
#include <deque>
using namespace std;
int main()
{
deque<int> myDeque;
myDeque.push_back(10); // 在末尾插入元素
myDeque.push_front(20); // 在头部插入元素
myDeque.pop_back(); // 移除末尾元素
myDeque.pop_front(); // 移除头部元素
}
stack:栈
#include <iostream>
#include <stack>
using namespace std;
int main()
{
stack<int> myStack;
myStack.push(10); // 元素入栈
int topElement = myStack.top(); // 访问栈顶元素
myStack.pop(); // 元素出栈
bool isEmpty = myStack.empty(); // 检查栈是否为空
}
queue:队列
#include <iostream>
#include <queue>
using namespace std;
int main()
{
queue<int> myQueue;
myQueue.push(10); // 元素入队
int frontElement = myQueue.front(); // 访问队首元素
myQueue.pop(); // 元素出队
bool isEmpty = myQueue.empty(); // 检查队列是否为空
}
priority_queue:优先队列
#include <iostream>
#include <queue>
using namespace std;
int main()
{
priority_queue<int> myPriorityQueue;
myPriorityQueue.push(10); // 元素入队
int topElement = myPriorityQueue.top(); // 访问队列中的最高优先级元素
myPriorityQueue.pop(); // 元素出队
bool isEmpty = myPriorityQueue.empty(); // 检查队列是否为空
// 其他
vector<int> vec = {1,2,3,4,5,6};
// 小堆则第三个参数设为greater<int>()
make_heap(vec.begin(), vec.end());
/* 将堆的最大(或最小)元素移动到容器的最后一个位置,并保持堆的性质不变。换句话说,它将堆中的根节点(通常是最大值或最小值)移动到最后一个节点,并将堆的大小减小一个元素。*/
pop_heap(vec.begin(), vec.end());
vec.pop_back();
vec.push_back(0);
/*将容器中的元素进行重新排列,以将新添加的元素(通常是最后一个元素)正确地放入堆中,并保持堆的性质不变。*/
push_heap(vec.begin(), vec.end());
}
map:哈希表
#include <iostream>
#include <unordered_map>
#include <string>
int main() {
std::unordered_map<std::string, int> myMap;
// 插入键值对
myMap["apple"] = 5;
myMap["banana"] = 3;
myMap["orange"] = 8;
// 访问元素
std::cout << "apple: " << myMap["apple"] << std::endl;
std::cout << "banana: " << myMap["banana"] << std::endl;
std::cout << "orange: " << myMap["orange"] << std::endl;
// 遍历哈希表
for (const auto& pair : myMap) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
// 检查元素是否存在
if (myMap.find("apple") != myMap.end()) {
std::cout << "apple exists" << std::endl;
}
// 删除元素
myMap.erase("banana");
// 检查元素是否存在
if (myMap.find("banana") == myMap.end()) {
std::cout << "banana does not exist" << std::endl;
}
return 0;
}
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END