C++数据结构类型以及实现类
1、array数组
#include<iostream> #include<array> using namespace std; int main() { array<int, 10> marray;//使用array方法 for (int i = 0; i < 10; i++)//向marray赋值 { marray[i] = i; } cout << "遍历数据" << endl; for (auto it = marray.begin(); it != marray.end(); it++) cout << *it << '\t'; cout << endl; cout << "size of array is " << marray.size() << endl; cout << "第四个元素为:" << marray[3] << endl; return 0; }
2、queue队列
#include<iostream> #include<array> #include<queue> //头文件 using namespace std; int main() { queue<int> mqueue; //队列初始化 for (int i = 0; i < 10; i++) { mqueue.push(i); //向其中添加数据 } while (!mqueue.empty()) { cout << mqueue.front() << endl;//获取头部数据 mqueue.pop(); //弹出头部数据 } return 0; }
3、stack栈
#include<iostream> #include<stack> using namespace std; int main() { stack<int> mstack; for (int i = 0; i < 10; i++) mstack.push(i); while (!mstack.empty()) { cout << mstack.top() << endl;//取栈顶元素 mstack.pop();//弹出栈顶元素 } return 0; }
4、list链表
#include<iostream> #include<list> using namespace std; int main() { int num[] = { 1,2,3,4,5 }; list<int> mlist(num, num + sizeof(num) / sizeof(int)); for (auto it = mlist.begin(); it != mlist.end(); it++) { cout << *it << " "; } auto it = mlist.begin(); for (int i = 0; i < 5; i++) { mlist.insert(it, i); } cout << endl; for (auto it = mlist.begin(); it != mlist.end(); it++) cout << *it << " "; return 0; }
5、map
map是一个容器,有一一对应的特点。
#include<iostream> #include<map> using namespace std; int main() { map<char, int> mmap;//初始化 mmap['a'] = 1; mmap.insert(pair<char, int>('b',2));//插入 mmap.erase('a');//删除 auto it = mmap.find('b');//查找 cout << it->first << " " << it->second << endl; return 0; }
6、set集合
set集合最大的特点是里面的元素按序排列不重复,图片演示集合初始化、插入、删除、查找等操作。
#include<iostream> #include<set> using namespace std; int main() { int num[] = { 1,2,3,4,5 }; set<int> myset(num, num + sizeof(num) / sizeof(int)); myset.insert(6);//插入 myset.erase(2);//删除 auto it = myset.find(3);//查找 cout << *it << endl; return 0; }
7、vector向量
vector向量和array不同,它可以根据数据的大小而进行自动调整,图片仅展示初始化、插入、删除等操作。
#include<iostream> #include<vector> using namespace std; int main() { vector<int> myvector; for (int i = 0; i < 10; i++) { myvector.push_back(i);//压入 } for (auto it = myvector.begin(); it != myvector.end(); it++)//遍历 { cout << *it << endl; } return 0; }