<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[MARSHCW的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/MARSHCW</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; MARSHCW]]></copyright><item><title><![CDATA[linuxPTP参数详解]]></title><link>https://blog.youkuaiyun.com/MARSHCW/article/details/133876229</link><guid>https://blog.youkuaiyun.com/MARSHCW/article/details/133876229</guid><author>MARSHCW</author><pubDate>Thu, 19 Oct 2023 16:53:46 +0800</pubDate><description><![CDATA[【代码】linuxPTP参数详解。]]></description><category></category></item><item><title><![CDATA[cpp无锁环队(RingBuffer)]]></title><link>https://blog.youkuaiyun.com/MARSHCW/article/details/132477938</link><guid>https://blog.youkuaiyun.com/MARSHCW/article/details/132477938</guid><author>MARSHCW</author><pubDate>Thu, 24 Aug 2023 17:14:51 +0800</pubDate><description><![CDATA[单例模式，节约内存，方便操作。出队和入队采用无锁实现。队列判空方式：read_index == write_index。队列判满方式：(write_index + 1) % size == read_index。return;if (!i ]]></description><category></category></item><item><title><![CDATA[container_of c语言中根据结构体成员的指针获取整个结构体的指针]]></title><link>https://blog.youkuaiyun.com/MARSHCW/article/details/131716301</link><guid>https://blog.youkuaiyun.com/MARSHCW/article/details/131716301</guid><author>MARSHCW</author><pubDate>Fri, 14 Jul 2023 09:29:01 +0800</pubDate><description><![CDATA[c语言技巧：根据结构体中某个成员的指针，返回整个结构体的指针。]]></description><category></category></item><item><title><![CDATA[c++/go算法模板, 刷题记录]]></title><link>https://blog.youkuaiyun.com/MARSHCW/article/details/120031351</link><guid>https://blog.youkuaiyun.com/MARSHCW/article/details/120031351</guid><author>MARSHCW</author><pubDate>Wed, 01 Sep 2021 07:39:23 +0800</pubDate><description><![CDATA[◉ 一、数组
1184. 公交站间的距离
难度：简单
环形公交路线上有 n 个站，按次序从 0 到 n - 1 进行编号。我们已知每一对相邻公交站之间的距离，distance[i] 表示编号为 i 的车站和编号为 (i + 1) % n 的车站之间的距离。
环线上的公交车都可以按顺时针和逆时针的方向行驶。
返回乘客从出发点 start 到目的地 destination 之间的最短距离。
示例 1：

输入：distance = [1,2,3,4], start = 0, destination = 1
输出]]></description><category></category></item><item><title><![CDATA[Mysql高级-day04]]></title><link>https://blog.youkuaiyun.com/MARSHCW/article/details/120031346</link><guid>https://blog.youkuaiyun.com/MARSHCW/article/details/120031346</guid><author>MARSHCW</author><pubDate>Wed, 01 Sep 2021 07:37:18 +0800</pubDate><description><![CDATA[Mysql高级-day04
1. MySql中常用工具
1.1 mysql
该mysql不是指mysql服务，而是指mysql的客户端工具。
语法 ：
mysql [options] [database]

1.1.1 连接选项
参数 ： 
	-u, --user=name			指定用户名
	-p, --password[=name]	指定密码
	-h, --host=name			指定服务器IP或域名
	-P, --port=#			指定连接端口

示例 ：
	mysql -h 127.0.0.1 -P ]]></description><category></category></item><item><title><![CDATA[Mysql高级-day03]]></title><link>https://blog.youkuaiyun.com/MARSHCW/article/details/120031343</link><guid>https://blog.youkuaiyun.com/MARSHCW/article/details/120031343</guid><author>MARSHCW</author><pubDate>Wed, 01 Sep 2021 07:36:42 +0800</pubDate><description><![CDATA[Mysql高级-day03
1. 应用优化
前面章节，我们介绍了很多数据库的优化措施。但是在实际生产环境中，由于数据库本身的性能局限，就必须要对前台的应用进行一些优化，来降低数据库的访问压力。
1.1 使用连接池
对于访问数据库来说，建立连接的代价是比较昂贵的，因为我们频繁的创建关闭连接，是比较耗费资源的，我们有必要建立 数据库连接池，以提高访问的性能。
1.2 减少对MySQL的访问
1.2.1 避免对数据进行重复检索
在编写应用代码时，需要能够理清对数据库的访问逻辑。能够一次连接就获取到结果的，就不用两]]></description><category></category></item><item><title><![CDATA[Mysql高级-day02]]></title><link>https://blog.youkuaiyun.com/MARSHCW/article/details/120031340</link><guid>https://blog.youkuaiyun.com/MARSHCW/article/details/120031340</guid><author>MARSHCW</author><pubDate>Wed, 01 Sep 2021 07:36:11 +0800</pubDate><description><![CDATA[Mysql高级-day02
1. Mysql的体系结构概览
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E9Be1Jyf-1630452946158)(assets/000001.jpg)]
整个MySQL Server由以下组成

Connection Pool : 连接池组件
Management Services &amp; Utilities : 管理服务和工具组件
SQL Interface : SQL接口组件
Parser : 查询分析器组件
Optimizer]]></description><category></category></item><item><title><![CDATA[Mysql高级-day01]]></title><link>https://blog.youkuaiyun.com/MARSHCW/article/details/120031335</link><guid>https://blog.youkuaiyun.com/MARSHCW/article/details/120031335</guid><author>MARSHCW</author><pubDate>Wed, 01 Sep 2021 07:35:00 +0800</pubDate><description><![CDATA[Mysql高级-day01
MySQL高级课程简介




序号
Day01
Day02
Day03
Day04




1
Linux系统安装MySQL
体系结构
应用优化
MySQL 常用工具


2
索引
存储引擎
查询缓存优化
MySQL 日志


3
视图
优化SQL步骤
内存管理及优化
MySQL 主从复制


4
存储过程和函数
索引使用
MySQL锁问题
综合案例


5
触发器
SQL优化
常用SQL技巧



1. Linux 系统安装MySQL
1.1 下载Linux 安装包
http]]></description><category></category></item><item><title><![CDATA[个人简单实现c++的lower_bound函数和upper_bound函数]]></title><link>https://blog.youkuaiyun.com/MARSHCW/article/details/118889912</link><guid>https://blog.youkuaiyun.com/MARSHCW/article/details/118889912</guid><author>MARSHCW</author><pubDate>Mon, 19 Jul 2021 10:30:04 +0800</pubDate><description><![CDATA[lower_bound函数
   函数lower_bound()在begin和end中的左闭右开区间进行二分查找，返回大于或等于val的第一个元素位置（迭代器）。如果所有元素都小于val，则返回last的位置。
注意STL中设计区间都是左闭右开，即[begin,end)。
lower_bound函数个人实现
   在左闭右开的区间内进行二分查找。
//lower_bound 实现
int left_bsearch(vector&lt;int&gt;&amp; nums, const int&amp; tar]]></description><category></category></item><item><title><![CDATA[Net]]></title><link>https://blog.youkuaiyun.com/MARSHCW/article/details/116529599</link><guid>https://blog.youkuaiyun.com/MARSHCW/article/details/116529599</guid><author>MARSHCW</author><pubDate>Mon, 10 May 2021 19:02:31 +0800</pubDate><description><![CDATA[文章目录简述数据如何在各层之间传输【数据的封装过程】TCP/IP 参考模型OSI 模型和 TCP/IP 模型异同比较OSI 和 TCP/IP 协议之间的对应关系为什么 TCP/IP 去除了表示层和会话层应用层有连接，无连接，可靠协议，不可靠，有状态，无状态的区别?简述HTTP协议?301和302状态码的区别？GET和POST有什么区别？GET 的长度限制是多少HTTP 方法(method)了解哪些为什么 fidder，charles 能抓到你的包【抓取数据包的过程】socket() 套接字有哪些一个URL（]]></description><category></category></item><item><title><![CDATA[C++ 字符串与char、char*、int的相互转换]]></title><link>https://blog.youkuaiyun.com/MARSHCW/article/details/115715010</link><guid>https://blog.youkuaiyun.com/MARSHCW/article/details/115715010</guid><author>MARSHCW</author><pubDate>Thu, 15 Apr 2021 09:06:55 +0800</pubDate><description><![CDATA[1.字符转换为string类型
引入stringstream类，间接转换。
#include&lt;sstream&gt;
char ch;
string str;
stringstream stream;
stream &lt;&lt; ch;
str = stream.str();


2.char * 或char[]转换为string类型
可以直接赋值。
string s1,s2;
char *p = "hello";
char a[]="hjfghf";
s1 = p;//直接赋值
s2 = a;/]]></description><category></category></item><item><title><![CDATA[MySQL：聚簇索引，辅助索引，回表查询,索引覆盖]]></title><link>https://blog.youkuaiyun.com/MARSHCW/article/details/111666362</link><guid>https://blog.youkuaiyun.com/MARSHCW/article/details/111666362</guid><author>MARSHCW</author><pubDate>Fri, 25 Dec 2020 11:40:28 +0800</pubDate><description><![CDATA[目录聚集索引(clustered index)辅助索引和回表查询对比索引覆盖索引覆盖判断标准如何实现索引覆盖？


聚集索引(clustered index)
聚簇索引就是按照每张表的主键构造一颗B+树，同时叶子节点中存放的就是整张表的行记录数据，也将聚集索引的叶子节点称为数据页。这个特性决定了索引组织表中数据也是索引的一部分，每张表只能拥有一个聚簇索引。B+树将数据存储与索引放到了一块，找到索引也就找到了数据，InnoDB聚集索引的叶子节点存储行记录，因此， InnoDB必须要有，且只有一个聚集索引：
（]]></description><category></category></item><item><title><![CDATA[C++：static 和 const（各种场景的用法）]]></title><link>https://blog.youkuaiyun.com/MARSHCW/article/details/111572868</link><guid>https://blog.youkuaiyun.com/MARSHCW/article/details/111572868</guid><author>MARSHCW</author><pubDate>Wed, 23 Dec 2020 10:28:38 +0800</pubDate><description><![CDATA[static 和 const各场景说明staticconstconst限定符和static的区别


static

全局静态变量
在全局变量前加上关键字static，全局变量就定义成一个全局静态变量.
内存中的位置：静态存储区，在整个程序运行期间一直存在。
初始化：未经初始化的全局静态变量会被自动初始化为0（自动对象的值是任意的，除非他被显式初始化）；
作用域：全局静态变量在声明他的文件之外是不可见的，准确地说是从定义之处开始，到文件结尾。
局部静态变量
在局部变量之前加上关键字static，局部变量就成]]></description><category></category></item><item><title><![CDATA[C++：位运算和位图bitmap]]></title><link>https://blog.youkuaiyun.com/MARSHCW/article/details/111520701</link><guid>https://blog.youkuaiyun.com/MARSHCW/article/details/111520701</guid><author>MARSHCW</author><pubDate>Tue, 22 Dec 2020 12:00:53 +0800</pubDate><description><![CDATA[位运算和位图位运算总结移位运算位运算应用举例位图


位运算总结
移位运算

移位运算是双目运算符，两个运算分量都是整形，结果也是整形。
“&lt;&lt;” 左移：右边空出的位上补0，左边的位将从首位挤掉，其值相当于乘2。
"&gt;&gt;"右移：右边的位被挤掉。对于左边移出的空位，如果是正数则空位补0，若为负数，可能补0或补1，这取决于所用的计算机系统。

二进制补码运算公式：
-x = ~x + 1 = ~(x-1)
-(~x) = x+1
~(-x) = x-1
x+y = x - ~y - 1 ]]></description><category></category></item><item><title><![CDATA[C++类内成员变量可以定义引用类型吗]]></title><link>https://blog.youkuaiyun.com/MARSHCW/article/details/111492016</link><guid>https://blog.youkuaiyun.com/MARSHCW/article/details/111492016</guid><author>MARSHCW</author><pubDate>Mon, 21 Dec 2020 19:50:58 +0800</pubDate><description><![CDATA[● 请你回答一下C++类内成员变量可以定义引用类型吗？
参考回答：
可以，必须通过成员函数初始化列表初始化，初始化后的引用变量所占用的内存空间和普通变量相同。
#include &lt;iostream&gt;
using namespace std;

class temp {
	public:
		temp(const int&amp; k) :a(n) {  // 必须要在初始化列表中进行初始化
			n = k;
			cout &lt;&lt; a &lt;&lt; endl;
		}

	pri]]></description><category></category></item><item><title><![CDATA[C++内联函数概述]]></title><link>https://blog.youkuaiyun.com/MARSHCW/article/details/111478388</link><guid>https://blog.youkuaiyun.com/MARSHCW/article/details/111478388</guid><author>MARSHCW</author><pubDate>Mon, 21 Dec 2020 17:03:22 +0800</pubDate><description><![CDATA[内联函数概述内联函数内联函数示例内联函数总结


内联函数
  inline是C++语言中的一个关键字，可以用于程序中定义内联函数，inline的引进使内联函数的定义更加简单。引入内联函数的目的是为了解决程序中函数调用的效率问题。
 内联函数是C++中的一种特殊函数，它可以像普通函数一样被调用，但是在调用时并不通过函数调用的机制而是通过将函数体直接插入调用处来实现的，这样可以大大减少由函数调用带来的开销，从而提高程序的运行效率。一般来说inline用于定义类的成员函数，用于类内定义时，可以省略inline。]]></description><category></category></item><item><title><![CDATA[C++友元函数概述]]></title><link>https://blog.youkuaiyun.com/MARSHCW/article/details/111476765</link><guid>https://blog.youkuaiyun.com/MARSHCW/article/details/111476765</guid><author>MARSHCW</author><pubDate>Mon, 21 Dec 2020 16:35:10 +0800</pubDate><description><![CDATA[友元函数
 类的友元函数是定义在类外部，但有权访问类的所有私有（private）成员和保护（protected）成员。尽管友元函数的原型有在类的定义中出现过，但是友元函数并不是成员函数。
#include &lt;iostream&gt;
using namespace std;

class temp
{
	double value;
public:
	friend void print(temp t) ;
	void showvalue() const;
	void setvalue(const dou]]></description><category></category></item><item><title><![CDATA[c++中const的修饰作用]]></title><link>https://blog.youkuaiyun.com/MARSHCW/article/details/110351360</link><guid>https://blog.youkuaiyun.com/MARSHCW/article/details/110351360</guid><author>MARSHCW</author><pubDate>Sun, 29 Nov 2020 20:13:08 +0800</pubDate><description><![CDATA[const的作用

int const* a  相当于const int* a  ，即指针指向的内容，其内容为常量，即不能改变*a的值。

	int num = 10;
	const int* a = &amp;num;
	*a= 11; //错误，不能修改内容，注意可以修改num的值


int* const a  表示指针为常量，不能修改其指向，即不能改变指针a的值。

	int num1 = 15;
	int * const b = &amp;num1;
	int num2 = 12;
	b = &a]]></description><category></category></item><item><title><![CDATA[VS常用的快捷键]]></title><link>https://blog.youkuaiyun.com/MARSHCW/article/details/110351955</link><guid>https://blog.youkuaiyun.com/MARSHCW/article/details/110351955</guid><author>MARSHCW</author><pubDate>Sun, 29 Nov 2020 20:11:10 +0800</pubDate><description><![CDATA[转载自
转载链接
ctrl+减号：回退到光标上一次的位置
Ctrl + Shift + B = 生成项目
Ctrl + Alt + L = 显示 Solution Explorer（解决方案资源管理器）
Shift + Alt+ C = 添加新类
Shift + Alt + A = 添加新项目到项目
编辑相关的键盘快捷键
Ctrl + Enter = 在当前行插入空行
Ctrl + Shift + Enter = 在当前行下方插入空行
Ctrl + 空格键 = 使用 IntelliSense（智能感知）自动]]></description><category></category></item><item><title><![CDATA[C语言 万能指针]]></title><link>https://blog.youkuaiyun.com/MARSHCW/article/details/110312121</link><guid>https://blog.youkuaiyun.com/MARSHCW/article/details/110312121</guid><author>MARSHCW</author><pubDate>Sun, 29 Nov 2020 14:41:03 +0800</pubDate><description><![CDATA[万能指针
void * 指针可以指向任意变量的内存空间,使用  *( 类型*) 指针名进行强制类型转换。
万能指针也称为泛型指针。
#include&lt;iostream&gt;
using namespace std;
int main()
{
	int a=345;
	void* p=&amp;a;
	cout&lt;&lt;*(int *)p&lt;&lt;endl;
	return 0;
}


...]]></description><category></category></item></channel></rss>