- 博客(53)
- 资源 (1)
- 收藏
- 关注
原创 【C语言】Linux系统文件操作函数基本使用
openclosereadwritelseekfcntl说明]文件描述符文件描述符是一个非负的整数,表示Linux内核打开的文件;启动一个进程,默认打开三个文件描述符[0-2]每次打开一个文件,系统分配一个最小的文件描述符;
2026-03-26 09:26:46
330
原创 【c语言】linux下静态库和动态库制作
静态库(后缀.a)是多个目标文件(.o)的归档文件,链接时会被完整拷贝到可执行程序中,生成的程序不依赖外部库即可运行。
2026-03-23 10:41:24
401
原创 【c 语言】linux下gcc编译工具的使用
GCC(GNU Compiler Collection)是 Linux 下最核心的编译工具链,支持 C、C++、Objective-C、Fortran 等多种语言,是开发和运维中编译程序、排查编译问题的必备工具。
2026-03-23 09:40:51
533
原创 【C++ STL】bind适配器详解
它可以将可调用对象(函数、函数指针、成员函数、函数对象等)与其部分参数绑定,生成一个新的可调用对象,这个新对象可以存储并在后续调用。绑定类成员函数时,需注意:第一个参数必须是“类对象的地址”(&对象)或“类指针”,后续参数为成员函数的参数(固定值/占位符)。占位符的数量,必须等于“新函数对象需要接收的参数个数”,否则会编译错误。是 C++11 引入的函数适配器,位于头文件。的现代替代品,功能更强大且使用更灵活。
2026-03-16 11:34:30
181
原创 【C++ STL】适配器简单介绍
不提供迭代器,不能使用 STL 算法直接操作。stack要求back()pop_back();queue要求front()back();要求随机访问迭代器和pop_back(),以及堆算法。通过封装,实现了数据结构的隔离,使代码意图更清晰。
2026-03-16 10:42:47
475
原创 【C++ STL】排序算法
unordered_set/unordered_map,底层使用hash表无序,可以转存到vector后进行排序;不需要全量排序,只需要「前 k 个最小 / 最大元素」,比全排序更高效(时间复杂度 O (n log k))。排序算法是 <algorithm> 头文件的核心功能,基于高效的排序思想实现,能覆盖绝大多数排序场景。std::set/std::map,底层使用红黑树默认排序升序,可以在定义时指定排序规则;set和map容器本省有序,不需要进行排序操作。默认升序排序,可以自定义排序规则。
2026-03-13 09:18:05
210
原创 【C++ STL】查找类算法
头文件中,能高效地在容器(如 vector、list、set 等)中完成查找、匹配、计数等操作。使用场景:任意可遍历的容器(vector、list、deque 等),无需容器有序。:需要按 “条件” 查找(如找第一个偶数、第一个大于 10 的数),而非固定值。查找第一个满足自定义条件的元素,条件通过函数(或 lambda 表达式)指定。判断有序范围内是否存在目标值,返回 bool 类型(true/false)。(如排序后的 vector、set、map),效率远高于通用查找。
2026-03-12 10:49:58
385
原创 【C++ STL】遍历算法
并行遍历:C++17 后可加执行策略(如 std::execution::par)实现多线程并行遍历,适合大数据量场景。修改元素必须用引用:Lambda / 函数参数需写 int&(而非 int),否则仅操作元素副本,原容器无变化;自定义类型用 const&:遍历自定义类型时,参数用 const Person& 避免不必要的拷贝,提升效率;遍历区间,判断元素是否满足指定条件(返回 bool),属于「遍历 + 判断」的简化算法。,并将结果存入新区间(或原区间),是「遍历 + 输出」的组合算法。
2026-03-12 09:40:39
213
原创 【C++ 基础】构造函数、析构函数
默认拷贝构造函数是 “浅拷贝”(直接复制成员变量的值);如果类有指针成员(如动态数组),需要手动实现 “深拷贝”(重新分配内存并复制内容),否则会导致多个对象共用同一块内存,析构时重复释放。,本质是初始化新对象的成员变量为源对象的副本。拷贝构造函数是构造函数的重载版本,用于。是 “赋值” 不是 “初始化”
2026-03-11 15:36:06
377
原创 【C++ STL】map容器的基本使用
map是 C++ STL 中最常用的,核心是存储key-value(键值对),且key唯一、自动排序,底层基于红黑树实现,保证增删查改的时间复杂度稳定在O(logn)。
2026-03-11 10:42:47
615
原创 【C++ STL】set容器的基本使用
set是基于红黑树的有序集合,元素唯一且自动升序,操作复杂度 O(logn),无随机访问;insert()emplace()(插入)、erase()(删除)、find()(查找)、clear()(清空),遍历仅支持双向迭代器;自定义类型需重载运算符,允许重复元素用multiset,修改元素需先删后插。
2026-03-10 11:03:45
535
原创 【C++ STL】stack栈容器的基本使用
stack 是 C++ STL 中实现栈数据结构的容器适配器,遵循「原则,只能从栈顶插入 / 删除 / 访问元素,无法操作栈底或中间元素,也无法遍历。
2026-03-10 10:08:41
350
原创 【C++ STL】queue队列容器的基本使用
queue(队列)是 C++ STL 中的容器适配器,底层(也可以指定为list),遵循(FIFO) 原则 —— 只能从队尾插入元素,从队首删除 / 访问元素,无法随机访问中间元素,非常适合模拟排队、任务调度等场景。
2026-03-10 09:05:10
172
原创 【C++ STL】list容器的基本使用
List容器list 是 C++ STL 中的双向链表容器,定义在 <list> 头文件中。它的核心特征是非连续内存存储,每个节点包含数据和指向前后节点的指针,因此擅长任意位置的高效插入 / 删除,但不支持随机访问。list 是对 vector/deque 的重要补充,适合频繁修改元素位置的场景。
2026-03-09 15:02:25
415
原创 【C++ STL】deque容器基本使用
核心定位:deque 是支持两端高效操作 + 随机访问的双端队列,平衡了 vector 和 list 的优缺点;关键操作:push_front/pop_front、push_back/pop_back 是其核心优势(O(1) 时间复杂度);使用选择:需要两端操作 + 随机访问选 deque;纯尾部操作 + 连续内存选 vector;大量中间操作选 list。
2026-03-09 09:48:04
236
原创 【C++ STL】Vector容器的基本使用
预分配至少 n 个元素的内存(仅扩容 capacity,不改变 size)返回当前分配的内存可容纳的元素数(不含额外空间)判断是否为空(size==0 时返回 true)返回当前元素个数(实际存储的元素数)
2026-03-06 11:31:32
510
原创 计算机大小端存储模式
int类型的数据0XAABB的低权位数据bb存储在内存中的高地址位,高权位数据aa存储在内存的低字节位,因此这里计算机的存储模式为小端模式(通常我们使用的X86、ARM都为小端模式,网络传输则为大端模式)。:数据的低位保存在内存中的低地址中,而数据的高位保存在内存的高地址中;这种方式将内存地址的高低和数据位的权重相互结合起来,高地址中数据权值高,低地址中数据权值低。:数据的低位保存在内存中的高地址中,而数据的高位保存在内存的低地址中;同时可以通过程序来判断我们的计算机是大端模式还是小端模式。
2026-03-04 10:58:55
33
原创 学习C语言指针
声明指针的时候必须指定数据类型(如int \*、long \*),指针的数据类型决定了通过指针访问内存的粒度,比如int\*访问4字节的内存,同时也决定了指针运算的步长。(2)p是变量,变量的诗句类型时int*;(3)将p和与p最近的\*一起去掉剩余int*代表存储的是一个int*类型的地址;将指针变量和指针变量最近的\*一起去掉,剩余的就是保存什么数据类型的地址,这里是int表示存储的是int类型的内存地址;2. pNum是变量,变量的数据类型是将变量名去掉剩下的就是变量的类型(这里是int *类型);
2026-03-04 10:12:23
50
原创 数据库基础
数据库管理系统Database Manager System(DBMS):数据库管理系统是操作和管理数据库的软件,用于创建、使用、维护数据库。实现对数据库的同意管理和控制。数据库Database(DB):按照一定的数据结构组织、存储数据的仓库。
2025-05-06 09:40:12
238
原创 Centos 7.6安装Oracle 11g 报错 Error in invoking target ‘agent nmhs‘ of makefile处理
Oracle 11G R2安装Error in invoking target 'agent nmhs' of makefile报错处理Exception String: Error in invoking target 'agent nmhs' of makefile '/u01/app/oracle/product/11.2.4/db_01/sysman/lib/ins_emagent.mk'. See '/u01/app/oraInventory/logs/installActions2021-12
2022-11-03 10:31:32
1251
原创 C语言冒泡排序
#include <stdio.h>// 主函数int main(int argc, char* argv){ // 排序数组 int arr[] = { 9,1,2,3,4,8,7,6,5 }; // 数组大小 int arrSize = sizeof(arr) / sizeof(arr[0]); // 冒泡排序轮数 for (int i = 0; i < arrSize-1; i++) { // 交换次数 int count = 0; for.
2022-05-07 14:31:47
362
原创 中小型企业网络局域网实例-核心交换机配置2
配置核心交换机STP配置核心交换机生成树协议模式为MSTP,配置VLAN 10 1024 对应实例1,配置VLAN20 对应实例2,域名huawei,配置核心交换机1为MSTP 实例1的根桥、实例2的备份根桥,配置核心交换机2为MSTP 实例2的根桥、实例1的备份根桥。stp mode mstp // stp 模式为mstp,华为交换机默认为mstp// mstp region配置stp region-configuration region-name huawei instance
2022-05-07 09:55:28
1544
原创 中小型企业网络局域网实例-核心交换机配置
配置VLAN交换机支持通过子网、MAC、策略、接口等方式划分VLAN,在企业网络中一般使用基于接口的方式划分VLAN。// 划分vlan,有两种配置方式,1是单个配置,2是批量配置vlanvlan 10 // 单个配置vlan,并进入vlan试图vlan batch 10 20 1024 // 批量创建多个vlan,可以通过vlan batch 10 to 20 的方式批量创建10 – 20 的所有vlan id// 配置vlan的描述信息,建议配置,方便后期管理vlan 1024
2022-05-06 11:26:58
6812
原创 中小型企业网络局域网实例-交换机基础配置
基础配置配置主机名,方便通过远程登录时,识别交换机。配置对应时区和当前日期时间,主要为了方便后期查看日志等信息。配置设备管理IP,配置管理IP地址方便后期通过远程登录交换机(如果设备有管理网口,也可以在管理网口上配置IP地址,通过管理网口远程管理交换机,需要在管理网口上布放网线)。配置远程登录方式,不考虑安全情况下可以配置telnet登录,考虑安全的情况下可以配置ssh登录。// 配置远程登录认证user-interface vty 0 4 // 进入用..
2022-05-06 10:48:37
1727
原创 中小型企业网络局域网实例-拓扑与规划
网络拓扑和规划网络拓扑中小型企业局域网组网一般采用二层架构即接入层和核心层,接入交换机负责将用户PC、打印机等网络终端接入到网络中,核心交换机快速转发不同接入交换机过来的数据,实现局域网内部不同网段之间互通。网络规划接入层规划PC1、PC3属于VLAN 10,网关IP地址192.168.1.1/24,PC2、PC4属于VLAN20,网关IP地址192.168.2.1/24,在接入交换机上划分VLAN,隔离广播...
2022-05-06 10:03:46
9533
原创 C语言有序数组折中查找法
#include <stdio.h>// 主函数int main(int argc, char* argv){ /* 有序数组折半查找法 */ int array[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 有序数组 int leftIndex = 0; // 左下标,初始为第0个元素 int rightIndex = sizeof(array) / sizeof(array[0]) - 1; // 右下标,初始为数组最后一个元素 int.
2022-04-29 09:37:56
1695
原创 RedHat Linux修改主机名的方法
RedHat Linux 操作系统修改主机名的方法 修改/etc/sysconfig/network文件中HOSTNAME,如果没有可以加入此字段。 eg:vi /etc/sysconfig/network HOSTNAME=mylinux 修改需要重启主机生效,如果要立即生效,可执行hostname 主机名 eg:hostname mylinux
2014-11-27 10:33:53
1183
原创 oracle启动报错ORA-00845: MEMORY_TARGET not supported on this system解决办法
oracle启动报错ORA-00845: MEMORY_TARGET not supported on this system原因可能:ORACLE MEMORY_TARGET参数设置超过了oracle服务器本身内存、或超过了现在服务器空闲内存(就是oracle启动时无法获取设置的内存) eg: oracle version:11gR2OS version:RedHat 6.4
2014-11-27 10:18:09
7404
原创 Linux操作系统配置网关
修改文件 /etc/sysconfig/networkNETWORKING=yes #是否启用网络,设置no后无法使用网络NETWORKING_IPV6=no #是否启用IPv6HOSTNAME=TEST #主机名,必须与hosts文件中设置的主机名一致GATEWAY=192.168.101.1 #网关地址
2013-12-03 14:13:10
1129
原创 配置华为交换机远程telnet登陆
1.配置telnet功能及参数system-view #进入系统视图Enter system view, return user view with Ctrl+Z.[Huawei]telnet server enable #配置开启telnet(默认开启)Info: The Telnet server has been enabled.[Huawei]telnet server
2013-10-15 10:46:01
10826
原创 配置华为交换机远程telnet登陆
1.配置telnet功能及参数system-view #进入系统视图Enter system view, return user view with Ctrl+Z.[Huawei]telnet server enable #配置开启telnet(默认开启)Info: The Telnet server has been enabled.[Huawei]telnet server
2013-10-15 10:44:32
11444
原创 linux root用户密码破解
1.开机启动到引导界面时,选中启动的内核按“e”,注意如果升级过系统内核,会有多个,上下选择你启动的那个2.上下键选择内核一项,继续按“e”3.进入如下画面 输入 空格 single4.返回2的界面,然后输入按“b”,进入单用户模式,但用户模式不需要输入密码就能进入,然后使用passwd更改root密码重新启动即可
2013-07-28 11:34:37
642
原创 AIX下errpt的使用
AIX小机查看系统告警信息errpterrpt命令会从错误日志中的记录生成一个错误报表,它包含了所选符合特定标准的错误的标志。利用缺省的条件,您可以以错误发生及被记录相反的顺序显示错误日志的记录,利用-c(并行)标志,您可以在错误发生时显示这些错误。1.要想显示一个完整的摘要报告,请输入: errpt 2.要想显示一个完整的详细报告,请输入: e
2013-06-17 14:25:16
3355
原创 windows更改盘符的方法
1.右击【我的电脑】——【管理】,进入计算机管理界面2.点击下面的磁盘管理菜单3.右击需要更改的盘-【更改驱动器名或路径】-更改4.选择指定一下驱动器号,调整到你想修改的盘符即可(前提是此盘符没有被使用)
2013-06-03 12:10:48
1341
原创 linux下nfs配置和客户端挂载
NFS是Network File System的简写,网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。1.首先确认服务端是否安装了NFS及portmaprpm -qa|grep nfssystem-config-nfs-1.3.23-1
2013-06-01 12:58:20
984
原创 linux下使用fdisk分区的方法
fdisk -l 查看硬盘分区的信息Disk /dev/sda: 32.2 GB, 32212254720 bytes255 heads, 63 sectors/track, 3916 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End
2013-06-01 12:41:34
750
原创 linux /bin/bash^M: bad interpreter: 没有那个文件或目录问题
这是我在执行一个脚本的时候出现的错误:简单的描述一下这是在windows下编辑好的脚本文件,切文件格式为filename.txt,使用ftp工具上传到linux下 执行的时候就出现了这个报错 /bin/bash^M: bad interpreter: 没有那个文件或目录问题很明显的可以看出来问题是处在这里的bin/bash^M:,脚本中直接查看为#!/bin/bash
2013-05-19 11:45:03
1168
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅