DAY 1 拓扑排序

本文介绍了C++中的几种重要数据结构,包括vector的初始化和操作,set的特性和使用,queue的基本操作,并详细讲解了链表的结构及其动态创建。此外,还探讨了memset和memcpy函数在内存操作中的应用。
摘要由CSDN通过智能技术生成

拓扑排序是一个有向无环图G=(V,E)中所有结点的一种线性排序。

(#include<bits/stdc++.h>包含C++的所有头文件)

vector(封装数组)

初始化:

vector<int>a(10);//定义十个整型向量

vector<int>a(10,1);//十个向量赋值为1

vector<int>a(b);//b给a赋值

int a[5]={0,1,2,3,4};
vector<int>b(a,a+5);

vector对象的常用内置函数
a.size():返回a在内存中总共可以容纳的元素个数。
a.push_back(2):在a的第一个元素位置插入数值2

set(封装二叉树)

在set中每个元素的值都是唯一的,而且系统能根据数据的值自动排序。(注意其中的元素不能直接被改变)

a.count:count函数用于计数容器中目标元素的个数
insert(key)函数:将key插入到set中

queue(封装队列)

push函数:在队列尾部插入一个元素
empty函数:判断队列是否为空,若为空则返回true
front函数:返回队列中第一个进入的元素,(就是第一个元素)
pop函数:将队列中最靠前位置的元素去掉,是无返回值的void函数

memset函数

memset()通常为新申请的内存进行初始化工作,它直接操作内存空间
它的原型是include<string.h>

void *memset(void *s,int c,unsigned long n);
//功能:将指针变量s所指向的前n字节的内存单元用一个整数c替换。

memset()作用是在一段内存块中填充某个给定的值

memecpy函数

声明在string.h中

void *memcpy(void *destin,void *source,unsigned n);

以source指向的地址为起点,将连续的n个字节数据,复制到以destin指向的地址为起点的内存中。
第一个是目标地址,第二个是源地址,第三个是数据长度。
数据长度的单位是字节
该函数有一个返回值,类型是void*,是一个指向destin的指针。

链表

链表:将结构体变量通过指针连接在一起

结构:

struct Node{
	int data;//数据域
	struct Node* next;//指针域
};

动态创建一个链表

  • 创建链表(创建一个表头表示整个链表)
  • 创建结点
  • 插入结点
  • 删除节点
  • 打印遍历链表
struct Node{
	int data;//数据域
	struct Node* next;//指针域
};
struct Node* creatlist()//创建链表
{
	struct Node* headNode =(struct Node*)malloc(siezof(struct Node));
	//headNode成为了结构体变量
	//变量使用前必须初始化
	headNode->next=NULL;
	return headNode;
}
struct Node* creatNode(int data)//创建结点
{
struct Node* newNode=(struct Node*)malloc(sizeof(struct Node));
newNode->data=data;
newNode->next=NULL;
return newNode;
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值