数组
int array[5]={1,2,3,4,5}
array[1] = 3
容器
C++ vector 容器浅析 | 菜鸟教程 (runoob.com)
vector<类型> obj(大小,值);
1.push_back 在数组的最后添加一个数据
2.pop_back 去掉数组的最后一个数据
3.at 得到编号位置的数据
4.begin 得到数组头的指针
5.end 得到数组的最后一个单元+1的指针
6.front 得到数组头的引用
7.back 得到数组的最后一个单元的引用
8.max_size 得到vector最大可以是多大
9.capacity 当前vector分配的大小
10.size 当前使用数据的大小
11.resize 改变当前使用数据的大小,如果它比当前使用的大,者填充默认值
12.reserve 改变当前vecotr所分配空间的大小
13.erase 删除指针指向的数据项
14.clear 清空当前的vector
15.rbegin 将vector反转后的开始指针返回(其实就是原来的end-1)
16.rend 将vector反转构的结束指针返回(其实就是原来的begin-1)
17.empty 判断vector是否为空
18.swap 与另一个vector交换数据
//方法一
for(int i=0;i<10;i++)
{
cout<<obj[i]<<" ";
}
cout<<endl;
//方法二,使用迭代器将容器中数据输出
vector<int>::iterator it;//声明一个迭代器,来访问vector容器,作用:遍历或者指向vector容器的元素
for(it=obj.begin();it!=obj.end();it++)
{
cout<<*it<<" ";
}
链表
#include "pch.h"
#include <iostream>
using namespace std;
int main(void) {
struct ListNode
{
double value;
ListNode *next;
//构造函数
ListNode(double valuel, ListNode *nextl = nullptr)
{
value = valuel;
next = nextl;
}
};
ListNode *thirdPtr = new ListNode(13.5);
ListNode *secondPtr = new ListNode(13.5,thirdPtr);
ListNode *head = new ListNode(12.5, secondPtr);
ListNode *ptr = head;
while (ptr != nullptr) {
cout << ptr << " ";
ptr = ptr->next;
}
}
栈
stack<int> mystack;
s.empty(); //如果栈为空则返回true, 否则返回false;
s.size(); //返回栈中元素的个数
s.top(); //返回栈顶元素, 但不删除该元素
s.pop(); //弹出栈顶元素, 但不返回其值
s.push(); //将元素压入栈顶
队列
queue<int> q;
q.empty() //如果队列为空返回true,否则返回false
q.size() //返回队列中元素的个数
q.pop() //删除队列首元素但不返回其值
q.front() //返回队首元素的值,但不删除该元素
q.push() //在队尾压入新元素
q.back() //返回队列尾元素的值,但不删除该元素
遍历
stack<int> stak;
for (int i = 1; i < 10; i++) {
stak.push(i);
}
while (!stak.empty()) {
cout << stak.top() << endl;
stak.pop();
}
queue<int> que;
for (int i = 1; i < 10; i++) {
que.push(i);
}
while (!que.empty()) {
cout << que.front() << endl;
que.pop();
}
树
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
TreeNode *n1 = new TreeNode(3); // 根节点 root
TreeNode *n2 = new TreeNode(4);
TreeNode *n3 = new TreeNode(5);
TreeNode *n4 = new TreeNode(1);
TreeNode *n5 = new TreeNode(2);
n1->left = n2;
n1->right = n3;
n2->left = n4;
n3->right = n5;
二叉树的遍历:彻底理解二叉树的遍历_码农的荒岛求生-CSDN博客_二叉树遍历
c++单循环实现二叉树的前,中,后序,层次遍历_u014524930的博客-CSDN博客