[IOS]UITableView的用法 文章目录UITableView显示数据的步骤UITableView显示数据的步骤设置数据源对象数据源对象必须遵守UITableView的数据源协议UITableViewDataSource在数据源对象中必须实现UITableViewDataSource中某些特定的方法,这些方法告诉了数据源应该如何显示数据当UITableView运行起来的时候,会不断的调用数据源对象的这些方法,来获取对应的数据并显示出来...
[Objective-C]NSString和NSMutableString详解 NSString概述1.NSString是一个数据类型,用来保存OC字符串,一旦创建就无法修改2.NSString本质上是Fundation框架中的一个类,OC中的字符串本质上使用NSString对象来存储的创建标准的NSString对象1.创建空字符串 NSString *str0 = [NSString new]; NSString *str1 = [NSString string];2.简便创建方法 NSString *str = @"Master";注
[Objective-C]NSDictionary与NSMutableDictionary详解 文章目录NSDictionaryNSDictionary字典数组的特点:NSdictionary数组与NSArray数组对比创建NSDictionary数组NSDictionary数组的使用遍历字典数组NSMutableDictionary特点:创建可变字典数组遍历字典数组添加元素删除元素数组的文件操作NSDictionaryNSDictionary字典数组的特点:1.都是数组,以键值对的形式存储数据的,向数组汇总存储数据的同时要为其指定别名,通过别名来查找数据,而不是通过下标2.字典数组一旦创建,
[Objective-C]NSArray与NSMutableArray详解 NSArrayNSArray的特点: 1.只能存储OC对象 2.长度固定,一旦数组创建完成无法新增和删除元素 3.每个元素都是紧密相连的,可通过下标访问 4.元素是id类型的 5.必须以nil结尾,表示有效元素到此结束NSArray数组的使用: 1. 使用 %@ 可以打印NSArray数组中的所有内容 2. NSArray无法存储基本数据类型,无法存储非OC对象 3. 创建空数组没有意义 eg:NSArray *arr1 = [NSArray new];NSArray *arr2 =
DFS、BFS经典例题 文章目录深度优先搜索1.n张牌分别放进n个盒子,有几种方案2.leetcode 690 员工重要性3.leetcode 733 图像渲染4.leetcode 130 被围绕的区域5.leetcode 200 岛屿数量广度优先搜搜索1.走迷宫问题2.员工重要性3.N叉树的层序遍历深度优先搜索1.n张牌分别放进n个盒子,有几种方案思路:代码流程:DFS(){处理边界,向上回退尝试当前的每一种可能确定一种可能后,递归处理下一步----DFS(下一步)回收本次处理结果}#include
[排序算法] 常见排序算法原理及代码实现 文章目录插入排序----直接插入排序插入排序----希尔排序选择排序---最简单的选择排序各排序算法对比插入排序----直接插入排序思路:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列 。// 直接插入排序void InsertSort(int* a, int n){ for (int i = 0; i < n - 1; i++) { //将tmp插入到[0,end]这个有序序列 int end = i;
网络基础:链路层协议:以太网协议、ARP协议 链路层负责相邻设备之间的的数据传输以太网协议-----eth协议:协议格式48位源端-对端mac地址:识别指定相邻的设备mac地址:uint8_t mac[6]-----网卡的物理硬件地址,出厂时就设置好了16位上层协议类型:用于数据分用时,上层协议的选择32位:数据帧尾:内含校验和,进行差错校验等操作ARP协议ARP协议:介于网络层与链路层之间的协议,通过IP地址获取MAC地址在局域网中广播ARP请求(smac+sip+0+dip) ,相邻设备收到ARP请求后,检测目的IP地址是否与自
Mysql数据库的基础知识 了解mysqlmysql是一个关系型数据库:以库、表、行、列这种关系模型组织数据Mysql使用时的注意事项每日一条数据库操作语句都应该以分号 ;结尾,因为mysql支持换行操作mysql数据库对大小写不敏感,大小写皆可,通常关键字使用大写表示mysql数据库中哭的名称应该以英文字符或者一些符号起始,但是不允许以数字起始mysql数据库中哭的名称、表的名称、字段的名称都不能使用mysql关键字,比如create、database;如果非要使用,那就用反引号括起来库的操作查看mysql
网络基础:传输层的典型协议:TCP/UDP协议、三次握手、四次挥手 传输层传输层的功能:负责两个进程或者应用程序之间的数据传输UDP协议协议格式16位源端-对端端口:用于识别通信两端进程16位数据报长度:能够描述的最大数字为65535,即一个udp报文总大小不能超过64K16位校验和:采用二进制反码求和算法,用于校验接收到的数据与发送方的数据是否一致协议特性无连接:通信时不需要建立连接,只需要知道对方的地址就可以直接发送数据不可靠:不保证数据安全有序地到达对端面向数据报: 面向数据报的传输方式是应用层交给UDP多长的报文,UDP就照样发送,即一次发送一
[C++] STL之空间配置器 文章目录什么是空间配置器?为什么需要空间配置器一级空间配置器二级空间配置器内存池工作原理内存碎片问题什么是空间配置器?空间配置器,就是用来为各个容器高效的管理空间(空间的申请与回收)的为什么需要空间配置器在模拟实现vector、list、map、unordered_map等容器时,所有需要空间的地方都是通过new申请的,虽然代码可以正常运行,但是有以下不足之处:空间申请与释放需要用户自己管理,容易造成内存泄漏频繁向系统申请小块内存,容易造成内存碎片频繁向系统申请小块内存,影响程序运行效率
[C++] 类型转换:static_cast、reinterpret_cast、const_cast、dynamic_cast static_cast支持所有的隐式类型转换,仅持支父类指针或者引用到子类指针或者引用的强制类型转换不支持其他的强制类型转换。reinterpret_cast支持强制类型转换const_cast去除变量的const属性,将常量去除常性,使其可以被修改。dynamic_cast只能用于多态场景下,父类的引用或指针向子类的引用或指针转换向上转型:子类对象指针/引用->父类指针/引用(不需要转换,赋值兼容规则)向下转型:父类对象指针/引用- >子类指针/引用(用dynamic_ca
[C++] C++11中的线程库 文章目录线程库常用接口join()和deatch()原子性操作库线程库在C++11之前,涉及到多线程问题,都是和平台相关的,比如windows和linux下各有自己的接口,这使得代码的可移植性比较差。C++11中最重要的特性就是对线程进行支持了,使得C++在并行编程时不需要依赖第三方库,而且在原子操作中还引入了原子类的概念。要使用标准库中的线程,必须包含< thread >头文件。常用接口函数名功能thread()构造一个线程对象,没有关联任何线程函数,即没有启动
组队竞赛、删除公共字符 题目一:组队竞赛解析:最主要的目标:要让每组的中间值最大,才能保证最后的总和最大步骤:将获取到的数组进行排序从后面取2个最大的数,从前面取1个最小的数组成一组循环第二步直到分组完毕将中间值进行累加求和这里还有一个问题 就是目标中的8、6、4这三个数组的位置如何求得?采用循环:for(int i=0;i<n;i++){ idx=arr.size()-2*(i+1)}例如:通过上述公式计算后,8在数组中的的位置是9-2*(0+1)=7;6的位置是9-2*(1+1)=5
[C++] 特殊类设计 设计一个类,只能在堆上创建对象方法:构造函数私有化,禁止在类外创建对象提供一个static成员函数在堆上创建对象(new),需要时再调用禁止拷贝,只声明拷贝构造,不实现;或者将拷贝构造声明为delete函数#include<iostream>using namespace std;class HeapObj {private: //构造函数私有化,禁止在类外创建对象 HeapObj() {} //防拷贝 //只声明,不实现 //或声明为delete函数 Heap