<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[QStack的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/QStack</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; QStack]]></copyright><item><title><![CDATA[发现了个好东西：Dify，快速搭应用的小帮手]]></title><link>https://blog.youkuaiyun.com/QStack/article/details/146499054</link><guid>https://blog.youkuaiyun.com/QStack/article/details/146499054</guid><author>QStack</author><pubDate>Tue, 25 Mar 2025 11:32:16 +0800</pubDate><description><![CDATA[总的来说，Dify 给我的感觉就像一个省时省力的帮手。你有想法，它帮你落地，不用自己从头抠细节。对我这种喜欢试新东西又不想太费劲的人来说，挺对胃口的。如果你们也想搞点小工具玩玩，可以去 Dify 官网 瞅瞅，或者直接搜 GitHub 找它的代码。我反正打算再多试试，看还能整出啥新花样！]]></description><category></category></item><item><title><![CDATA[RAG：AI的“外挂”神器，让回答不再“胡说八道”]]></title><link>https://blog.youkuaiyun.com/QStack/article/details/146176208</link><guid>https://blog.youkuaiyun.com/QStack/article/details/146176208</guid><author>QStack</author><pubDate>Tue, 11 Mar 2025 13:06:05 +0800</pubDate><description><![CDATA[资料可以通过获取。]]></description><category></category></item><item><title><![CDATA[C++教程之函数（二）]]></title><link>https://blog.youkuaiyun.com/QStack/article/details/129919923</link><guid>https://blog.youkuaiyun.com/QStack/article/details/129919923</guid><author>QStack</author><pubDate>Sun, 02 Apr 2023 23:56:11 +0800</pubDate><description><![CDATA[在C++中，我们可以使用inline关键字来定义内联函数。内联函数的定义通常放在头文件中，以便在多个源文件中使用。a : b;在上面的例子中，max函数是一个内联函数，它的定义前面有inline关键字。当我们在程序中调用max函数时，编译器会将其直接嵌入到调用它的代码中，从而避免了函数调用的开销。在C++11中，我们可以使用constexpr关键字来定义constexpr函数。在上面的例子中，factorial函数是一个constexpr函数，它的定义前面有constexpr关键字。]]></description><category></category></item><item><title><![CDATA[C++教程之函数（一）]]></title><link>https://blog.youkuaiyun.com/QStack/article/details/129827474</link><guid>https://blog.youkuaiyun.com/QStack/article/details/129827474</guid><author>QStack</author><pubDate>Tue, 28 Mar 2023 23:13:12 +0800</pubDate><description><![CDATA[在 C++ 中，函数的定义和调用都非常简单。// 定义一个名为 add 的函数，它有两个参数 x 和 y，返回值为 x + y// 调用 add 函数，并将返回值赋值给变量 zreturn 0;在这个示例中，我们定义了一个名为 add 的函数，它有两个参数 x 和 y，返回值为 x + y。然后在 main 函数中，我们调用了 add 函数，并将返回值赋值给变量 z，最后输出了 1 + 2 = 3。]]></description><category></category></item><item><title><![CDATA[C++教程之基本语句]]></title><link>https://blog.youkuaiyun.com/QStack/article/details/129760572</link><guid>https://blog.youkuaiyun.com/QStack/article/details/129760572</guid><author>QStack</author><pubDate>Fri, 24 Mar 2023 23:32:49 +0800</pubDate><description><![CDATA[这篇文章主要介绍了C++中的基本语句，更多文章可以关注公众号QStack。]]></description><category></category></item><item><title><![CDATA[C++教程之位运算]]></title><link>https://blog.youkuaiyun.com/QStack/article/details/129720601</link><guid>https://blog.youkuaiyun.com/QStack/article/details/129720601</guid><author>QStack</author><pubDate>Wed, 22 Mar 2023 22:10:09 +0800</pubDate><description><![CDATA[这篇文章主要讲述来C++中的位运算，更多文章可以关注公众号QStack。]]></description><category></category></item><item><title><![CDATA[C++教程之表达式]]></title><link>https://blog.youkuaiyun.com/QStack/article/details/129601560</link><guid>https://blog.youkuaiyun.com/QStack/article/details/129601560</guid><author>QStack</author><pubDate>Thu, 16 Mar 2023 22:05:56 +0800</pubDate><description><![CDATA[这篇文章主要介绍了表达式，更多文章可以关注公众号QStack。]]></description><category></category></item><item><title><![CDATA[Aptos DAPP之智能合约编写]]></title><link>https://blog.youkuaiyun.com/QStack/article/details/129479006</link><guid>https://blog.youkuaiyun.com/QStack/article/details/129479006</guid><author>QStack</author><pubDate>Sun, 12 Mar 2023 18:21:01 +0800</pubDate><description><![CDATA[package]我们可以看到包信息和一个AptosFramework的依赖，其中的name属性就是我们使用–name指定的属性，其中的AptosFrame依赖指向github仓库main分支aptos-core/aptos-move/framework/aptos-framework。这篇文章主要讲述了DAPP中智能合约的编写，更多文章可以关注公众号QStack。]]></description><category></category></item><item><title><![CDATA[C++教程之array]]></title><link>https://blog.youkuaiyun.com/QStack/article/details/129393663</link><guid>https://blog.youkuaiyun.com/QStack/article/details/129393663</guid><author>QStack</author><pubDate>Tue, 07 Mar 2023 22:44:37 +0800</pubDate><description><![CDATA[上一篇文章我们介绍了C++中的迭代器，这篇文章将会介绍C++中数组的概念，数组是一种和vector类似的数据结构，但是其在性能和灵活性上的权衡中选择了性能而放弃了一定的灵活性，其与vector相同的地方是，它们都是同一类型的对象的容器，也都可以通过下标访问。其不同点是数组的大小是固定的，所以无法向一个数组添加元素，也正是因为其大小固定，所以其在运行时有更好的性能。需要注意的是一些编译器是不支持数组的拷贝，如果直接通过一个数组去初始化另一个数组可能会报错。在理解声明时可以按照从左到右，从内到外的顺序。]]></description><category></category></item><item><title><![CDATA[Aptos发布模块]]></title><link>https://blog.youkuaiyun.com/QStack/article/details/129353125</link><guid>https://blog.youkuaiyun.com/QStack/article/details/129353125</guid><author>QStack</author><pubDate>Sun, 05 Mar 2023 23:25:35 +0800</pubDate><description><![CDATA[官网提供的Move模块在aptos-core/aptos-move/move-examples/hello_blockchain目录下，首先进入该目录下。首先我们需要创建一个aptos账户，然后获取一些代币，我们可以使用以下命令去初始化一个新的本地账户，这个是需要安装aptos命令行工具。这时候我们就生成了一个账户，其地址如下，由于这个账户是随机生成的，所以其与一般账户有所不同，在使用上这个账户地址与default等价。在编译测试好模块后，可以通过以下命令发布模块。编译测试Move模块。]]></description><category></category></item><item><title><![CDATA[Aptos SDK交互笔记（一）]]></title><link>https://blog.youkuaiyun.com/QStack/article/details/129310350</link><guid>https://blog.youkuaiyun.com/QStack/article/details/129310350</guid><author>QStack</author><pubDate>Thu, 02 Mar 2023 22:13:30 +0800</pubDate><description><![CDATA[这篇文章主要讲述了如何与Aptos区块链进行交互，更多内容可以关注公众号QStack。]]></description><category></category></item><item><title><![CDATA[TypeScript笔记（五）]]></title><link>https://blog.youkuaiyun.com/QStack/article/details/129290508</link><guid>https://blog.youkuaiyun.com/QStack/article/details/129290508</guid><author>QStack</author><pubDate>Wed, 01 Mar 2023 21:38:15 +0800</pubDate><description><![CDATA[这篇文章主要介绍了TS声明文件的相关内容，更多文章可以关注公众号QStack。]]></description><category></category></item><item><title><![CDATA[TypeScript笔记（三）]]></title><link>https://blog.youkuaiyun.com/QStack/article/details/129170632</link><guid>https://blog.youkuaiyun.com/QStack/article/details/129170632</guid><author>QStack</author><pubDate>Wed, 22 Feb 2023 21:05:58 +0800</pubDate><description><![CDATA[上一篇文章我们主要介绍了TypeScript的基本类型boolean、number、string、void、null和undefine，还介绍了任意类型any和联合类型，这篇文章我们将会了解对象类型Interface和数组的相关知识。在面向对象的语言中，接口是一个非常重要的概念，它是对于行为的抽象，具体的行为是需要由类去实现的。在TypeScript中接口是一个非常灵活的概念，除了可用于对类的一部分行为进行抽象外，也可以用于对对象的形状进行描述，这里的形状就可以理解为对象的属性。age: 25。]]></description><category></category></item><item><title><![CDATA[C++教程之迭代器Iterator]]></title><link>https://blog.youkuaiyun.com/QStack/article/details/129133599</link><guid>https://blog.youkuaiyun.com/QStack/article/details/129133599</guid><author>QStack</author><pubDate>Mon, 20 Feb 2023 22:54:07 +0800</pubDate><description><![CDATA[之前的两篇文章我们主要了解了vector和string的相关知识，从中我们知道可以通过下标来访问vector的元素或者string的字符，但是除了这种方式还有一种更为通用的方式获取元素，那就是迭代器，这篇文章就会简单介绍迭代器的相关内容。在我们使用容器去存储元素的时候有时候会需要获取存储的元素，而迭代器就是用于从容器中获取元素的，基本上所有容器的库都支持迭代器，但是只有其中一小部分支持下标获取元素的。虽然string不是容器但是其支持很多容器的操作，其中就包括下标和迭代器。]]></description><category></category></item><item><title><![CDATA[TypeScript笔记（二）]]></title><link>https://blog.youkuaiyun.com/QStack/article/details/129101157</link><guid>https://blog.youkuaiyun.com/QStack/article/details/129101157</guid><author>QStack</author><pubDate>Sat, 18 Feb 2023 15:53:56 +0800</pubDate><description><![CDATA[这篇文章主要介绍了TypeScript的基本类型如boolean、number、string、void、null和undefine，还介绍了任意类型Any和联合类型。更多内容可以关注公众号QStack。]]></description><category></category></item><item><title><![CDATA[TypeScript笔记（一）]]></title><link>https://blog.youkuaiyun.com/QStack/article/details/129051818</link><guid>https://blog.youkuaiyun.com/QStack/article/details/129051818</guid><author>QStack</author><pubDate>Wed, 15 Feb 2023 22:12:26 +0800</pubDate><description><![CDATA[为什么会突然学TypeScript呢？那是很多web3的项目都是基于TypeScript开发的，所以为了更快的熟悉项目，还是想系统性学习下TypeScript的相关内容。这些文章都是基于有一定编程基础的前提写的，很多的还是了解TypeScript的一些特性。那么什么是TypeScript？TypeScript和JavaScript又是什么关系呢？添加了类型系统的 JavaScript，适用于任何规模的项目。]]></description><category></category></item><item><title><![CDATA[从零开始学习构建系统之cmake(二)]]></title><link>https://blog.youkuaiyun.com/QStack/article/details/129034858</link><guid>https://blog.youkuaiyun.com/QStack/article/details/129034858</guid><author>QStack</author><pubDate>Tue, 14 Feb 2023 22:35:19 +0800</pubDate><description><![CDATA[一个基于cmake的构造系统是通过一系列逻辑上的target组织起来的，一个target对应于一个可执行文件或者库，或者是一个自定义的一个target，其包含了一些自定义的命令，target之间的依赖关系决定了构建的顺序以及对于修改的重新生成的规则。这篇文章主要介绍了cmake构建系统各种库文件的内容，更多文章可以关注公众号QStack。]]></description><category></category></item><item><title><![CDATA[C++教程之vector]]></title><link>https://blog.youkuaiyun.com/QStack/article/details/128962208</link><guid>https://blog.youkuaiyun.com/QStack/article/details/128962208</guid><author>QStack</author><pubDate>Thu, 09 Feb 2023 23:18:46 +0800</pubDate><description><![CDATA[以下提供了关于vector的六种定义与初始化的方式// vector包含string类型对象，默认初始化，v1为空//v2复制v1的所有内容//v3也是复制v1的所有内容// v4中有四个”123“//v5有10个初始化值的对象// 列表初始化，v6中有两个对象”12“， ”23“//列表初始化，v7中有两个对象”21“, "32"需要注意的是列表初始化方式在C++99是不支持的，要C++11及以上才可以，否则会编译报错。]]></description><category></category></item><item><title><![CDATA[下一代的智能合约开发语言Move（七）]]></title><link>https://blog.youkuaiyun.com/QStack/article/details/128944342</link><guid>https://blog.youkuaiyun.com/QStack/article/details/128944342</guid><author>QStack</author><pubDate>Wed, 08 Feb 2023 22:05:54 +0800</pubDate><description><![CDATA[上一篇文章我们主要介绍了Move语言中的泛型，了解了泛型的定义与使用，在Move中泛型可以用于结构体和函数。结构体这个数据类型能够帮助我们创建自己的类型和存储复杂的数据结构，但是有时候我们需要更灵活，扩展性更好和管理性更好的数据结构，为了满足这个需求，Move提供了Vector。script {// 使用泛型创建一个空的vectorlet i = 0;// 填充数据i = i + 1;// 打印vector的长度// 从vector中移除数据// 重新打印长度。]]></description><category></category></item><item><title><![CDATA[从零开始学习构建系统之cmake（一）]]></title><link>https://blog.youkuaiyun.com/QStack/article/details/128909710</link><guid>https://blog.youkuaiyun.com/QStack/article/details/128909710</guid><author>QStack</author><pubDate>Mon, 06 Feb 2023 22:49:32 +0800</pubDate><description><![CDATA[根据其官网的定义，cmake是一个开源跨平台的，用于构建、测试和打包软件的一个套件工具。与cmake相关的几个概念需要明晰，如GCC，make和makefile。GCC：GCC是GNU Compiler Collection（就是GNU编译器套件），也可以简单认为是编译器，它可以编译很多种编程语言（括C、C++、Objective-C、Fortran、Java等等）]]></description><category></category></item></channel></rss>