欢迎使用本站,预祝练习时长两年半的选手们到成功! [本模块信息来自tem/def/head]

class05 mfy

时间:2024-05-12 17:49 作者:admin 点击:
数组:是在内存中物理连续存放的同类型的数据结构 一维数组:同类型、物理内存连续、大小一旦创建不能改变 下标:从零开始,是我们为了使用数组方便设计的 地址:数组名代表数

数组:是在内存中物理连续存放的同类型的数据结构

一维数组:同类型、物理内存连续、大小一旦创建不能改变

下标:从零开始,是我们为了使用数组方便设计的

地址:数组名代表数组在内存中首元素的起始位置,十六进制 0x开头

int a[100];

cout<<a;//0x344ef6

cout<<&a[0];//& 引用符号,取地址符 0x344ef6

cout<<&a[1];//0x344efa 相差4,int占4字节


数组的初始化:

int a[长度];

int a[长度]={数据};

int a[];//数组创建时,长度不能为空

int a[]={数据};//创建的同时并赋值,数组长度根据赋值数量而定

如果赋值的数据数量比长度少,其余位置补零


作业:

小鱼比可爱 https://www.luogu.com.cn/problem/P1428

统计天数 https://www.luogu.com.cn/problem/P1567

黑色星期五 https://www.luogu.com.cn/problem/P1202



二维数组的本质就是连续的多个长度相同的一维数组,也就是一个大的一维数组。

因此,使用二维数组时,下标可以与一维数组互置

int n,m;

cin>>n>>m;

int a[n+5][m+5];

for(int i=0;i<n;i++){

   for(int j=0;j<m;j++){

       cin>>a[i][j];

   }

}

int a[n*m+5];

for(int i=0;i<n;i++){

   for(int j=0;j<m;j++){

       cin>>a[i*m+j];

   }

}


字符数组&字符串

在C语言中,没有字符串,把字符数组称作字符串

C++语言中,有string工具包


字符数组拥有普通数组的所有用法和性质

且,可以通过字符串赋值,赋值时字符串的末尾会自带空字符 '\0',因此把长度空着比较常用

char c[]="abcde";//长度默认5+1

输入一个字符数组

char c[10000];

cin>>c;//整行输入,以空格或换行符分隔 hello world

cout<<c;//hello


cin.getline(c,10000);//整行输入,换行结束,可以输入空格符并存储 hello world

cout<<c;//hello world


使用getline时,容易存储缓存垃圾数据

在同时使用 cin语句和getline语句时,需要提前清理缓存垃圾

在getline语句执行前,写清空代码

cin.ignore();//清空缓存


字符数组函数笔记:https://noicode.online/a/jichuyufa/20240511/205.html


字符串string

基本数据类型:int long long double float bool char

字符串不是基本数据类型

string s;//创建一个字符串空间,包含s的数据域以及字符串的相关功能函数

string s="abcde";

s.size()

s.length()

s.substr()

...


直接使用的函数是公共的,不需要(变量名.)调用

字符串作为特殊的类型,自带很多类函数,需要通过字符串类型的变量加'.'调用


字符串相关的功能详解:string文档


~~~~~~~~~~~~~~~~~~~~~~~~~

1、自定义函数:一般自定义函数中不写输出语句

创建语法结构


函数类型 函数名(参数组){

   函数体

   return 返回值;

}


函数类型与返回值类型相同 如果返回值不存在(return ;)函数类型为void

int a=5,b=10;

swap(a,b);

cout<<a<<b;//105


根据需求写函数,确定函数的类型与参数

1、计算两个整数的和:将两个整数相加,返回结果

int he(int a,int b){

   return a+b;

}

int main(){

   int n,m;

   cin>>n>>m;

   cout<<he(n,m);

   return 0;

}

2、判断一个整数是否是质数

bool isprime(int n){

   if(n<2) return false;

   for(int i=2;i<=sqrt(n);i++)

       if(n%i==0) return false;

   return true;

}

int main(){

   int num;

   cin>>num;

   if(isprime(num)) cout<<"yes";

   else cout<<"no";

   return 0;

}

3、交换函数swap

void swap2(int a,int b){

   int t=a;

   a=b;

   b=t;

}

int main(){

   int n,m;

   cin>>n>>m;//5 10

   swap2(n,m);

   cout<<n<<m;//510

   return 0;

}





后序内容如下:

递归函数

自定义类型

文件操作

指针操作

~~~~~~~~~~~~~~~~~~~~~~~~~

基础算法:枚举、二分、排序(冒泡、选择、插入、计数[桶]、快速排序),高精度算法,时空复杂度

数据结构:栈、队列、链表、集合、向量、映射...

~~~~~~~~~~~~~~~~~~~~~~~~~

树、图、贪心、动态规划









(责任编辑:admin)
    顶一下
    (0)
    0%
    踩一下
    (0)
    0%