deque的用法
#include<deque>
deque<type> d;
push_back()
push_front()
pop_back()
pop_front()
back()
front()
clear()
empty()
size()
begin()
end()
rbegin()
rend()
for(int i=0;i<d.size();i++)
{
cout<<d[i]<<" ";
}
deque<type>::iterator it;
for(it=d.begin();it!=d.end();it++)
{
cout<<*it<<" ";
}
for(int it:d)
{
cout<<it<<" ";
}
stack
stack<type> s;
empty()
pop()
push()
size()
top()
向量容器
#include<vector>
vector<type> vec;
vec.size();
vec.push_back();
sort(vec.begin(), vec.end());
auto its = unique(vec.begin(), vec.end());
vec.erase(its, vec.end());
auto f = find(vec.begin(), vec.end(), 5);
if (f != vec.end()) {
cout << "找到" << 5 << " 的位置在 " << f - vec.begin() << endl;
}
else {
cout << "Not found" << endl;
}
vector<int>::iterator it;
for (it = vec.begin();it != vec.end();it++)
{
cout << *it << " ";
}
for(int i=0;i<vec.size();i++)
{
cout<<vec[i]<<" ";
}
set
#include<set>
class MyCompare
{
public:
bool operator()(int v1, int v2)const {
return v1 > v2;
}
};
set<type,MyCompare> s1;
s1.insert(val);
size();
empty();
clear();
auto s1 = myset.find(key);
if (s1 != myset.end())
{
cout << "找到了元素 : " << *s1 << endl;
}
else
{
cout << "未找到元素" << endl;
}
count(key);
erase(pos);
erase(elem);
map
map<string,int> maps;
m[123] = "dd";
map<char, int> myMap = {{key, value}};
map< string,int>::iterator it;
for(it = m.begin(); it != m.end(); it++)
cout<< it->first <<" "<< it->second <<endl;
常用算法
int arr[] = { 3, 1, 4, 1, 5, 9, 2, 6, 5, 3 };
int n = sizeof(arr) / sizeof(arr[0]);
sort(arr, arr + n);
reverse(arr, arr + n);
int list[] = { 2,4,6,8,12 };
int m = sizeof(list) / sizeof(list[0]);
vector<int> vec(m);
copy(list, list + m, vec.begin());
字符串
string str = "Hello,world!";
str.length() 或者 str.size();
str[i];
str.substr(pos,len);
(char)tolower(str[0]);
(char)toupper(str[1]);
to_string(val)
reverse(str.begin(), str.end());
cout << str.find("world") << '\n';
auto pos = str.find_last_of("o");
if (pos != string::npos) {
cout << "last position: " << pos << endl;
}
else {
cout << "no result." << endl;
}
动态创建数组
cin>>rows;
int** angle = new int* [rows];
for (int i = 0; i < rows; i++) {
angle[i] = new int[rows];
}
vector<vector<int>> angle(rows);
for (int i = 0; i < rows; i++) {
angle[i].resize(rows);
}
int *arr = new int[rows];
链表
typedef struct node{
type data;
struct node *link;
}LNode,*LinkList;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!