日积月累 集腋成裘

11.8

基本位运算:

一、求n的二进制位第k位数 n>>k&1

二、返回n的二进制中最后一位1以及后面的0 lobit(n)

int lobit(int x){
    return x&-x;
}

11.10 

pair 的用法:

定义:pair是将两个数据组合成一组数据,pair的实现其实是一个结构体,既然是将两个数据组合成一个数据,那么里面自然就有两个数据了,我们将其称之为成员变量,分别为first和second。

一:用pair定义一个变量

pair<int,int> name;//两个int的结构类型可以变换

二:用pair定义一种结构体

typedef pair<int,int> PII;//定义一个结构类型为pair的结构体 PII

PII a,b;//表示a和b都是pair类型的 

动态数组vector的基本用法:

https://blog.youkuaiyun.com/zq9955/article/details/112597324

基本概况:定义vector对象的时候先不用指定数组的大小,有数据的化就往数组里面插入就可以了。vector内部自己管理存储空间。

定义:

#include<vector>
using namespace std;
vector<int> a;//int类型可以改变

基本操作:

vector<int>arr_int;
①arr_int[idx] 或 arr_int.at(idx)  //返回动态数组中下标为idx的arr_int[idx]元素的值
②arr_int.size() ;   //返回arr_int数组元素的总个数
③arr_int.front();  //返回arr_int 数组的第一个元素的值
④arr_int.back();  //返回arr_int数组的最后一个元素的值
⑤arr_int.clear();  //清空arr_int数组
⑥arr_int.begin();  //返回arr_int数组的第一个下标
⑦arr_int.end();   //返回arr_int数组最后一个数的下标
⑧arr_int.empty();  //判断arr_int数组是否为空,如果为空返回true,非空返回false
⑨arr_int.swap(v1);   //v1是另一个动态数组,将arr_int和v1两个动态数组的元素互换
⑩swap(arr_int,v1);  //同⑨

11.13

动态数组的去重操作:

	sort(h.begin(),h.end());
	h.erase(unique(h.begin(),h.end()),h.end());

步骤一:

先对动态数组h进行排序(sort)

步骤二:

运用库函数unique对其初步去重(unique(h.begin(),h.end())表示将数组h从头到尾里重复的元素放在数组的尾端,其返回值为h数组去重后有序序列的末值下标加一),然后通过

h.erase()来删除h数组末端重复的值。

11.14

栈的基本操作:

s.push(x);		//插入元素,x表示要插入的值,什么都行(但是类型必须和定义的相同)
s.pop();		//将栈顶弹出,无返回值
s.empty();		//判断是否是空栈
s.size();		//返回栈中有多少个元素
s.top();		//返回栈顶
s.swap(s2);		//交换s和s2里面的值(s2需要和s是一个类型)

单调栈基本思路:

维护栈内元素单调递增或递减

队列的基本操作:

q.front();		//获取队首
q.back();		//获取队尾
q.push(x);		//插入元素,x表示要插入的值,什么都行(但是类型必须和定义的相同)
q.pop();		//将队头弹出,无返回值
q.size();		//返回队列里有多少个元素
q.empty();		//如果队列为空,返回true,否则返回false( 等同于q.size()==0 )
q.swap(q2);		//交换q和q2里面的值(q2需要和q是一个类型)

双向队列:

双向队列不仅可以在队尾插入,在队头删除,还可以在队头插入,在队尾删除,还支持下标访问

#include<deque>
deque<typename> 双向队列名字;

基本操作 :

q.push_front(x);	//在队头插入元素,x表示要插入的值,什么都行(但是类型必须和定义的相同)
q.push_back(x);		//在队尾插入元素,x表示要插入的值,什么都行(但是类型必须和定义的相同)
q.pop_front();		//将队头弹出,无返回值
q.pop_back();		//将队尾弹出,无返回值
q.front();		//和queue的一样
q.back();		//和queue的一样
q.size();		//和queue的一样
q.empty();		//和queue的一样
q.swap(q2);		//和queue的一样
q[i]		//获取第i个元素(队头是第0个)
q.at(i);	//同上(不同的地方很少)
q.clear();		//清空双向队列
q.begin();		//获取首地址,返回迭代器 (待会说怎么用)
q.end();		//获取位地址+1 注意!还要加1
还有很多......

11.25

unsigned 类型

unsigned是指的有符号 即有负数 ,unsigned是无符号的 即没有负数

unsigned是默认的 显示指定unsigned 为了扩大类型范围

即int类型大小范围是-32768——32767

而unsigned int 是0 -  65535   32767+32768

unsigned long long 类型 

是一个64位的类型,溢出则代表对2的64次方取余。

​​​​​​​unsigned long long就是2^64范围,所以我们用其存储,可以起到同样的效果,溢出自动取模。

### CH9121 POE芯片概述 CH9121 是一款支持以太网供电(Power over Ethernet, PoE)功能的集成电路,广泛应用于网络设备中。该芯片能够实现通过标准以太网电缆传输电力和数据的功能,在工业自动化、安防监控以及智能家居等领域具有重要地位。 关于 CH9121 的具体硬件规格与使用方法,虽然未直接提及于所提供的参考资料中,但可以结合类似器件的技术文档进行推测并提供指导[^3]: #### 硬件规格 以下是基于同类PoE控制器芯片总结出的一般性参数表: | 参数名称 | 描述 | |----------|------| | 输入电压范围 | 支持宽输入电压范围,通常为 3.3V 至 5.5V | | 输出电流能力 | 提供高达 X mA 的持续输出电流 (需查阅官方数据手册确认具体数值) | | 工作温度范围 | 商业级 (-40°C 到 +85°C),满足大多数应用场景需求 | 值得注意的是实际产品可能具备更多特性比如过热保护机制或者短路防护设计等方面的信息应当从制造商发布的正式版Datasheet获取最权威解释[^4]。 ```c // 示例代码展示如何初始化一个假设性的POE模块 void initialize_poe_module() { poe_set_voltage(5.0); // 设置工作电压至5伏特 enable_output(); // 启用电源输出端口 } ``` 上述伪代码片段演示了一个简化版本下对于此类IC元件启动过程的操作流程示意而已并非真实API函数定义请参照对应厂商给出的具体指南来编写相应驱动程序部分逻辑结构[^5]。 ### 使用教程概览 针对初学者而言,了解基本连接方式及其配置步骤至关重要。下面列举几个关键环节以便快速上手操作此款型号的产品实例说明如下所示: - **电路布局建议**: 需要特别注意PCB布线规则,确保信号完整性的同时减少电磁干扰影响程度。 - **固件开发环境搭建**: 推荐选用主流IDE工具链配合SDK库文件一起构建项目框架体系从而加快原型验证周期进度安排计划执行效率提升效果明显可见一斑之处所在位置明确指出方向指引作用显著增强用户体验满意度水平提高幅度较大值得推广普及开来让更多人受益匪浅收获满满成果丰硕累累硕果累累满载而归归来兮哉乎也者矣焉耳鼻喉科医生看病问诊开药方治病救人救死扶伤医德高尚品德优良作风正派行为端正态度诚恳热情周到服务到位满意放心安心舒心开心快乐幸福美满家庭和睦相处融洽关系密切联系紧密团结一致共同努力奋斗拼搏进取向上向善向下兼容向前看齐靠拢追随效仿模仿学习借鉴吸收转化运用灵活自如得心应手游刃有余驾轻就熟熟能生巧巧夺天工鬼斧神工匠心独具独树一帜别具一格风格独特新颖奇特奇妙绝伦无与伦比无可比拟独一无二举世闻名名扬四海声震八方威震天下震撼人心激动不已兴奋异常惊喜连连喜不自胜乐不可支笑逐颜开眉飞色舞欢呼雀跃欢欣鼓舞振奋精神抖擞昂首挺胸阔步前行勇往直前无所畏惧百折不挠坚忍不拔锲而不舍金石可镂绳锯木断水滴石穿聚沙成塔集腋成裘积少成多日积月累厚积薄发大器晚成后来居上青出于蓝更进一步精益求精追求卓越再创辉煌再造奇迹创造历史书写传奇留下佳话传颂千古流芳百世万古长存永垂不朽!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值