hexo.zyjblogs.cn/posts/59764.html
2024-10-19 13:43:15 +08:00

334 lines
42 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="zh-CN" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0,viewport-fit=cover"><title>C++后台 | 一只攻城狮的学习之旅</title><meta name="author" content="逝水无痕"><meta name="copyright" content="逝水无痕"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#ffffff"><meta name="description" content="C++后台学习篇一、一个项目入门C++足以CPlusPlusThings.CPlusPlusThings 是国人开源一个 C++ 学习项目。它系统地将 C++ 学习分为了【基础进阶】、【实战系列】、【C++2.0 新特性】、【设计模式】和【STL 源码剖析】、【并发编程】、【C++ 惯用法】、【"><link rel="shortcut icon" href="/img/favicon.png"><link rel="canonical" href="https://zyjblogs.cn/posts/59764.html"><link rel="preconnect" href="//cdnjs.cloudflare.com"/><link rel="preconnect" href="//hm.baidu.com"/><link rel="stylesheet" href="/css/index.css"><link rel="stylesheet" href="https://jsd.cdn.zzko.cn/npm/@fortawesome/fontawesome-free/css/all.min.css"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fancyapps-ui/5.0.24/fancybox/fancybox.min.css" media="print" onload="this.media='all'"><script>var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?6edd69cc926242ec43e7194677fb8040";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script><script>const GLOBAL_CONFIG = {
root: '/',
algolia: undefined,
localSearch: {"path":"/search.xml","preload":false,"top_n_per_article":1,"unescape":false,"languages":{"hits_empty":"找不到您查询的内容:${query}","hits_stats":"共找到 ${hits} 篇文章"}},
translate: undefined,
noticeOutdate: undefined,
highlight: {"plugin":"highlight.js","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":false},
copy: {
success: '复制成功',
error: '复制错误',
noSupport: '浏览器不支持'
},
relativeDate: {
homepage: false,
post: false
},
runtime: '天',
dateSuffix: {
just: '刚刚',
min: '分钟前',
hour: '小时前',
day: '天前',
month: '个月前'
},
copyright: undefined,
lightbox: 'fancybox',
Snackbar: undefined,
infinitegrid: {
js: 'https://cdnjs.cloudflare.com/ajax/libs/egjs-infinitegrid/4.11.1/infinitegrid.min.js',
buttonText: '加载更多'
},
isPhotoFigcaption: false,
islazyload: true,
isAnchor: false,
percent: {
toc: true,
rightside: true,
},
autoDarkmode: true
}</script><script id="config-diff">var GLOBAL_CONFIG_SITE = {
title: 'C++后台',
isPost: true,
isHome: false,
isHighlightShrink: false,
isToc: true,
postUpdate: '2023-10-12 17:43:55'
}</script><script>(win=>{
win.saveToLocal = {
set: (key, value, ttl) => {
if (ttl === 0) return
const now = Date.now()
const expiry = now + ttl * 86400000
const item = {
value,
expiry
}
localStorage.setItem(key, JSON.stringify(item))
},
get: key => {
const itemStr = localStorage.getItem(key)
if (!itemStr) {
return undefined
}
const item = JSON.parse(itemStr)
const now = Date.now()
if (now > item.expiry) {
localStorage.removeItem(key)
return undefined
}
return item.value
}
}
win.getScript = (url, attr = {}) => new Promise((resolve, reject) => {
const script = document.createElement('script')
script.src = url
script.async = true
script.onerror = reject
script.onload = script.onreadystatechange = function() {
const loadState = this.readyState
if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
script.onload = script.onreadystatechange = null
resolve()
}
Object.keys(attr).forEach(key => {
script.setAttribute(key, attr[key])
})
document.head.appendChild(script)
})
win.getCSS = (url, id = false) => new Promise((resolve, reject) => {
const link = document.createElement('link')
link.rel = 'stylesheet'
link.href = url
if (id) link.id = id
link.onerror = reject
link.onload = link.onreadystatechange = function() {
const loadState = this.readyState
if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
link.onload = link.onreadystatechange = null
resolve()
}
document.head.appendChild(link)
})
win.activateDarkMode = () => {
document.documentElement.setAttribute('data-theme', 'dark')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d')
}
}
win.activateLightMode = () => {
document.documentElement.setAttribute('data-theme', 'light')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#ffffff')
}
}
const t = saveToLocal.get('theme')
const isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches
const isLightMode = window.matchMedia('(prefers-color-scheme: light)').matches
const isNotSpecified = window.matchMedia('(prefers-color-scheme: no-preference)').matches
const hasNoSupport = !isDarkMode && !isLightMode && !isNotSpecified
if (t === undefined) {
if (isLightMode) activateLightMode()
else if (isDarkMode) activateDarkMode()
else if (isNotSpecified || hasNoSupport) {
const now = new Date()
const hour = now.getHours()
const isNight = hour <= 6 || hour >= 18
isNight ? activateDarkMode() : activateLightMode()
}
window.matchMedia('(prefers-color-scheme: dark)').addListener(e => {
if (saveToLocal.get('theme') === undefined) {
e.matches ? activateDarkMode() : activateLightMode()
}
})
} else if (t === 'light') activateLightMode()
else activateDarkMode()
const asideStatus = saveToLocal.get('aside-status')
if (asideStatus !== undefined) {
if (asideStatus === 'hide') {
document.documentElement.classList.add('hide-aside')
} else {
document.documentElement.classList.remove('hide-aside')
}
}
const detectApple = () => {
if(/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)){
document.documentElement.classList.add('apple')
}
}
detectApple()
})(window)</script><link rel="stylesheet" href="/css/background.css"><meta name="generator" content="Hexo 6.3.0"><link rel="alternate" href="/atom.xml" title="一只攻城狮的学习之旅" type="application/atom+xml">
<link rel="alternate" href="/rss2.xml" title="一只攻城狮的学习之旅" type="application/rss+xml">
</head><body><script>window.paceOptions = {
restartOnPushState: false
}
document.addEventListener('pjax:send', () => {
Pace.restart()
})
</script><link rel="stylesheet" href="/css/loading.css"/><script src="https://cdnjs.cloudflare.com/ajax/libs/pace/1.2.4/pace.min.js"></script><div id="web_bg"></div><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="avatar-img is-center"><img src= "/img/loading.gif" data-lazy-src="https://zyjblogs.cn/logo.jpg" onerror="onerror=null;src='/img/friend_404.gif'" alt="avatar"/></div><div class="sidebar-site-data site-data is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">26</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">22</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">9</div></a></div><hr class="custom-hr"/><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 首页</span></a></div><div class="menus_item"><a class="site-page group" href="javascript:void(0);"><i class="fa-fw fa-fw fas fa-compass"></i><span> 目录</span><i class="fas fa-chevron-down"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 归档</span></a></li><li><a class="site-page child" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> 分类</span></a></li><li><a class="site-page child" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> 标签</span></a></li></ul></div><div class="menus_item"><a class="site-page group" href="javascript:void(0);"><i class="fa-fw fas fa-list"></i><span> 媒体</span><i class="fas fa-chevron-down"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/bangumis"><i class="fa-fw fa-fw fab fa-youtube"></i><span> 番剧</span></a></li></ul></div><div class="menus_item"><a class="site-page" target="_blank" rel="noopener" href="https://gogs.zyjblogs.cn"><i class="fa-fw fa fa-code"></i><span> 仓库</span></a></div><div class="menus_item"><a class="site-page" href="/link/"><i class="fa-fw fas fa-link"></i><span> 友链</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-heart"></i><span> 关于</span></a></div></div></div></div><div class="post" id="body-wrap"><header class="post-bg" id="page-header" style="background-image: url('/img/background.jpg')"><nav id="nav"><span id="blog-info"><a href="/" title="一只攻城狮的学习之旅"><span class="site-name">一只攻城狮的学习之旅</span></a></span><div id="menus"><div id="search-button"><a class="site-page social-icon search" href="javascript:void(0);"><i class="fas fa-search fa-fw"></i><span> 搜索</span></a></div><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 首页</span></a></div><div class="menus_item"><a class="site-page group" href="javascript:void(0);"><i class="fa-fw fa-fw fas fa-compass"></i><span> 目录</span><i class="fas fa-chevron-down"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 归档</span></a></li><li><a class="site-page child" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> 分类</span></a></li><li><a class="site-page child" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> 标签</span></a></li></ul></div><div class="menus_item"><a class="site-page group" href="javascript:void(0);"><i class="fa-fw fas fa-list"></i><span> 媒体</span><i class="fas fa-chevron-down"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/bangumis"><i class="fa-fw fa-fw fab fa-youtube"></i><span> 番剧</span></a></li></ul></div><div class="menus_item"><a class="site-page" target="_blank" rel="noopener" href="https://gogs.zyjblogs.cn"><i class="fa-fw fa fa-code"></i><span> 仓库</span></a></div><div class="menus_item"><a class="site-page" href="/link/"><i class="fa-fw fas fa-link"></i><span> 友链</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-heart"></i><span> 关于</span></a></div></div><div id="toggle-menu"><a class="site-page" href="javascript:void(0);"><i class="fas fa-bars fa-fw"></i></a></div></div></nav><div id="post-info"><h1 class="post-title">C++后台</h1><div id="post-meta"><div class="meta-firstline"><span class="post-meta-date"><i class="far fa-calendar-alt fa-fw post-meta-icon"></i><span class="post-meta-label">发表于</span><time class="post-meta-date-created" datetime="2022-02-06T16:00:00.000Z" title="发表于 2022-02-07 00:00:00">2022-02-07</time><span class="post-meta-separator">|</span><i class="fas fa-history fa-fw post-meta-icon"></i><span class="post-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2023-10-12T09:43:55.398Z" title="更新于 2023-10-12 17:43:55">2023-10-12</time></span><span class="post-meta-categories"><span class="post-meta-separator">|</span><i class="fas fa-inbox fa-fw post-meta-icon"></i><a class="post-meta-categories" href="/categories/c/">c++</a></span></div><div class="meta-secondline"><span class="post-meta-separator">|</span><span class="post-meta-wordcount"><i class="far fa-file-word fa-fw post-meta-icon"></i><span class="post-meta-label">字数总计:</span><span class="word-count">1.4k</span><span class="post-meta-separator">|</span><i class="far fa-clock fa-fw post-meta-icon"></i><span class="post-meta-label">阅读时长:</span><span>4分钟</span></span><span class="post-meta-separator">|</span><span class="post-meta-pv-cv" id="" data-flag-title="C++后台"><i class="far fa-eye fa-fw post-meta-icon"></i><span class="post-meta-label">阅读量:</span><span id="busuanzi_value_page_pv"><i class="fa-solid fa-spinner fa-spin"></i></span></span></div></div></div></header><main class="layout" id="content-inner"><div id="post"><article class="post-content" id="article-container"><h1 id="C-后台"><a href="#C-后台" class="headerlink" title="C++后台"></a>C++后台</h1><h2 id="学习篇:"><a href="#学习篇:" class="headerlink" title="学习篇:"></a>学习篇:</h2><h3 id="一、一个项目入门C-足以CPlusPlusThings"><a href="#一、一个项目入门C-足以CPlusPlusThings" class="headerlink" title="一、一个项目入门C++足以CPlusPlusThings."></a>一、一个项目入门C++足以CPlusPlusThings.</h3><p>CPlusPlusThings 是国人开源一个 C++ 学习项目。它系统地将 C++ 学习分为了【基础进阶】、【实战系列】、【C++2.0 新特性】、【设计模式】和【STL 源码剖析】、【并发编程】、【C++ 惯用法】、【学习课程】、【工具】、【拓展】。</p>
<p>作为一个全面系统的 C++ 学习项目CPlusPlusThings 是优秀的,它合理地安排了 10 Days 的实战部分,在实战中了解语法和函数用法,唯一不足的是,在注释部分有些不尽人意,对部分新手程序员并不是很友好。</p>
<p><a target="_blank" rel="noopener" href="https://github.com/Light-City/CPlusPlusThings">CPlusPlusThings</a> <a target="_blank" rel="noopener" href="https://light-city.club/sc/">C++那些事 (light-city.club)</a></p>
<h3 id="二、C-实现的算法合集C-Plus-Plus"><a href="#二、C-实现的算法合集C-Plus-Plus" class="headerlink" title="二、C++实现的算法合集C-Plus-Plus"></a>二、C++实现的算法合集C-Plus-Plus</h3><p>C-Plus-Plus 是收录用 C++ 实现的各种算法的集合,并按照 MIT 许可协议进行授权。这些算法涵盖了计算机科学、数学和统计学、数据科学、机器学习、工程等各种主题。除外,你可能会发现针对同一目标的多个实现使用不同的算法策略和优化。</p>
<p><a target="_blank" rel="noopener" href="https://github.com/TheAlgorithms/C-Plus-Plus">C-Plus-Plus</a></p>
<h3 id="三、进阶指南CppTemplateTutorial"><a href="#三、进阶指南CppTemplateTutorial" class="headerlink" title="三、进阶指南CppTemplateTutorial"></a>三、进阶指南CppTemplateTutorial</h3><p>CppTemplateTutorial 为中文的 C++ Template 的教学指南。与知名书籍 C++ Templates 不同,该系列教程将 C++ Templates 作为一门图灵完备的语言来讲授,以求帮助读者对 Meta-Programming 融会贯通。本项目写作初衷,就是通过 “编程语言” 的视角,介绍一个简单、清晰的 “模板语言”。我会尽可能地将模板的诸多要素连串起来,用一些简单的例子帮助读者学习这门 “语言”,让读者在编写、阅读模板代码的时候,能像<code>if(exp) &#123; dosomething(); &#125;</code>一样的信手拈来,让 “模板元编程” 技术成为读者牢固掌握、可举一反三的有用技能。</p>
<p>适合熟悉 C++ 的基本语法、使用过 STL、熟悉一些常用的算法以及递归等程序设计方法的 C++ 学习者阅读。虽然项目章节文章写的深入浅出,不过唯一的遗憾是尚未完成所有章节内容。进度如下:</p>
<p><a target="_blank" rel="noopener" href="https://github.com/wuye9036/CppTemplateTutorial">CppTemplateTutorial</a> <a target="_blank" rel="noopener" href="https://mp.weixin.qq.com/s/ntCoAKFz6dAQNKzsg1_0VA">c++资料</a></p>
<p>四、网络库</p>
<p><a target="_blank" rel="noopener" href="https://github.com/yedf/handy">网络库</a></p>
<h2 id="小试牛刀篇"><a href="#小试牛刀篇" class="headerlink" title="小试牛刀篇"></a>小试牛刀篇</h2><h3 id="一、写一个小型STL库MyTinySTL"><a href="#一、写一个小型STL库MyTinySTL" class="headerlink" title="一、写一个小型STL库MyTinySTL"></a>一、写一个小型STL库MyTinySTL</h3><p>当你学习完 C++ 的“书本”知识后是不是有些手痒了呢MyTinySTL 这个注释详细、实践夯实基础的项目便是你 C++ 学习之旅的下一站。作为新手练习用途MyTinySTL 的作者 Alinshans 用 C++11 重新复写了一个小型 STL容器库算法库。代码结构清晰规范、包含中文文档与注释并且自带一个简单的测试框架适合 C++ 新手来实践一番。</p>
<p><a target="_blank" rel="noopener" href="https://github.com/Alinshans/MyTinySTL">MyTinySTL</a></p>
<h3 id="二、小实战—俄罗斯广块Tinytetris"><a href="#二、小实战—俄罗斯广块Tinytetris" class="headerlink" title="二、小实战—俄罗斯广块Tinytetris"></a>二、小实战—俄罗斯广块Tinytetris</h3><p>Tinytetris 是一个用 C++ 编写的终端版俄罗斯方块游戏。它提供了两个版本的源码,分为注释版和库版,注释较多易于理解和学习。</p>
<p><a target="_blank" rel="noopener" href="https://github.com/taylorconor/tinytetris">Tinytetris</a></p>
<h3 id="三、学习下大佬们的代码做个计算器calculator"><a href="#三、学习下大佬们的代码做个计算器calculator" class="headerlink" title="三、学习下大佬们的代码做个计算器calculator"></a>三、学习下大佬们的代码做个计算器calculator</h3><p>微软开源的 Windows 系统预装的计算器工具。该工具提供标准、科学、程序员计算器的功能,以及各种度量单位和货币之间的转换功能。快来看看微软工程师编写的代码吧!学习大厂的编码规范、项目结构之类的,提高阅读源码的能力。英文的项目且没有讲解部分,需要通过阅读源码学习,难度较高。</p>
<p><img src= "/img/loading.gif" data-lazy-src="https://pica.zhimg.com/80/v2-0987699fbf54eb4f4c51a24f359d1cbc_720w.jpg?source=1940ef5c" alt="计算器"></p>
<p><a target="_blank" rel="noopener" href="https://github.com/microsoft/calculator">微软自带计算器</a></p>
<h2 id="大型项目篇:"><a href="#大型项目篇:" class="headerlink" title="大型项目篇:"></a>大型项目篇:</h2><h3 id="一、C-C-高频量化投资交易平台EliteQuant-Cpp"><a href="#一、C-C-高频量化投资交易平台EliteQuant-Cpp" class="headerlink" title="一、C&#x2F;C++高频量化投资交易平台EliteQuant Cpp"></a>一、C&#x2F;C++高频量化投资交易平台EliteQuant Cpp</h3><p>基于C&#x2F;C++ 11的多线程并发式高频交易平台。它遵循现代设计模式例如事件驱动服务器&#x2F;客户端架构依赖注入和松散耦合的强大稳定的分布式系统。它可以独立运行和直接使用。同时它也作为其他EliteQuant项目的服务器端。</p>
<p><a target="_blank" rel="noopener" href="https://gitee.com/EliteQuant/EliteQuant_Cpp">EliteQuant Cpp</a></p>
<h3 id="二、开源网盘云存储-Seafile"><a href="#二、开源网盘云存储-Seafile" class="headerlink" title="二、开源网盘云存储 Seafile"></a>二、开源网盘云存储 Seafile</h3><p>Seafile是一个开源、专业、可靠的云存储平台解决文件集中存储、共享和跨平台访问等问题</p>
<p>Seafile是一款强大优秀的云同步软件拥有跨平台文件同步、移动端文件访问、挂载盘、文件共享和权限控制、文件锁定、文件版本管理和资料库镜像、在线编辑和协同编辑、审计日志等功能。</p>
<p><a target="_blank" rel="noopener" href="https://github.com/haiwen/seafile">Seafile</a></p>
<h3 id="三、基于-C-Python-的开源量化交易研究框架-Hikyuu"><a href="#三、基于-C-Python-的开源量化交易研究框架-Hikyuu" class="headerlink" title="三、基于 C++&#x2F;Python 的开源量化交易研究框架 Hikyuu"></a>三、基于 C++&#x2F;Python 的开源量化交易研究框架 Hikyuu</h3><p>Hikyuu Quant Framework是一款基于C++&#x2F;Python的开源量化交易研究框架用于策略分析及回测。其核心思想基于当前成熟的系统化交易方法将整个系统化交易抽象为由市场环境判断策略、系统有效条件、信号指示器、止损&#x2F;止盈策略、资金管理策略、盈利目标策略、移滑价差算法七大组件</p>
<p>你可以分别构建这些组件的策略资产库,在实际研究中对它们自由组合来观察系统的有效性、稳定性以及单一种类策略的效果。</p>
<p><a target="_blank" rel="noopener" href="https://github.com/fasiondog/hikyuu"> Hikyuu</a></p>
<h3 id="四、开源自动驾驶平台-ApolloAuto"><a href="#四、开源自动驾驶平台-ApolloAuto" class="headerlink" title="四、开源自动驾驶平台 ApolloAuto"></a>四、开源自动驾驶平台 ApolloAuto</h3><p>Apollo (阿波罗)是一个开放的、完整的、安全的平台,将帮助汽车行业及自动驾驶领域的合作伙伴结合车辆和硬件系统,快速搭建一套属于自己的自动驾驶系统。</p>
<p>Apollo 是百度重点打造的 AI 开放平台之一,计划主要包含 4 个技术模块:定位&#x2F;感知模块、车辆规划与运营AI+大数据,精准控制车辆,适合不同路况)、软件运营框架(支持英特尔、英伟达等多种芯片)。</p>
<p><a target="_blank" rel="noopener" href="https://www.oschina.net/p/apolloauto"> ApolloAuto</a></p>
</article><div class="post-copyright"><div class="post-copyright__author"><span class="post-copyright-meta"><i class="fas fa-circle-user fa-fw"></i>文章作者: </span><span class="post-copyright-info"><a href="https://zyjblogs.cn">逝水无痕</a></span></div><div class="post-copyright__type"><span class="post-copyright-meta"><i class="fas fa-square-arrow-up-right fa-fw"></i>文章链接: </span><span class="post-copyright-info"><a href="https://zyjblogs.cn/posts/59764.html">https://zyjblogs.cn/posts/59764.html</a></span></div><div class="post-copyright__notice"><span class="post-copyright-meta"><i class="fas fa-circle-exclamation fa-fw"></i>版权声明: </span><span class="post-copyright-info">本博客所有文章除特别声明外,均采用 <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/" target="_blank">CC BY-NC-SA 4.0</a> 许可协议。转载请注明来自 <a href="https://zyjblogs.cn" target="_blank">一只攻城狮的学习之旅</a></span></div></div><div class="tag_share"><div class="post-meta__tag-list"><a class="post-meta__tags" href="/tags/c/">c++</a><a class="post-meta__tags" href="/tags/%E5%90%8E%E7%AB%AF/">后端</a></div><div class="post_share"><div class="social-share" data-image="/img/background.jpg" data-sites="wechat,weibo,qq"></div><link rel="stylesheet" href="https://jsd.cdn.zzko.cn/npm/social-share.js/dist/css/share.min.css" media="print" onload="this.media='all'"><script src="https://jsd.cdn.zzko.cn/npm/social-share.js/dist/js/social-share.min.js" defer></script></div></div><nav class="pagination-post" id="pagination"><div class="prev-post pull-left"><a href="/posts/63502.html" title="C/C++ 关于 cJson 库的使用"><img class="cover" src= "/img/loading.gif" data-lazy-src="/img/background.jpg" onerror="onerror=null;src='/img/404.jpg'" alt="cover of previous post"><div class="pagination-info"><div class="label">上一篇</div><div class="prev_info">C/C++ 关于 cJson 库的使用</div></div></a></div><div class="next-post pull-right"><a href="/posts/35899.html" title="C++编译期多态与运行期多态"><img class="cover" src= "/img/loading.gif" data-lazy-src="/img/background.jpg" onerror="onerror=null;src='/img/404.jpg'" alt="cover of next post"><div class="pagination-info"><div class="label">下一篇</div><div class="next_info">C++编译期多态与运行期多态</div></div></a></div></nav><div class="relatedPosts"><div class="headline"><i class="fas fa-thumbs-up fa-fw"></i><span>相关推荐</span></div><div class="relatedPosts-list"><div><a href="/posts/15563.html" title="C++ 八股文(一)"><img class="cover" src= "/img/loading.gif" data-lazy-src="/img/background.jpg" alt="cover"><div class="content is-center"><div class="date"><i class="far fa-calendar-alt fa-fw"></i> 2022-02-07</div><div class="title">C++ 八股文(一)</div></div></a></div><div><a href="/posts/58849.html" title="C++书单"><img class="cover" src= "/img/loading.gif" data-lazy-src="/img/background.jpg" alt="cover"><div class="content is-center"><div class="date"><i class="far fa-calendar-alt fa-fw"></i> 2021-08-09</div><div class="title">C++书单</div></div></a></div><div><a href="/posts/59243.html" title="C++ 使用 chrono 库处理日期和时间"><img class="cover" src= "/img/loading.gif" data-lazy-src="/img/background.jpg" alt="cover"><div class="content is-center"><div class="date"><i class="far fa-calendar-alt fa-fw"></i> 2022-02-07</div><div class="title">C++ 使用 chrono 库处理日期和时间</div></div></a></div><div><a href="/posts/63502.html" title="C&#x2F;C++ 关于 cJson 库的使用"><img class="cover" src= "/img/loading.gif" data-lazy-src="/img/background.jpg" alt="cover"><div class="content is-center"><div class="date"><i class="far fa-calendar-alt fa-fw"></i> 2022-02-07</div><div class="title">C&#x2F;C++ 关于 cJson 库的使用</div></div></a></div><div><a href="/posts/97623f3c.html" title="一起探索C++类内存分布"><img class="cover" src= "/img/loading.gif" data-lazy-src="/img/background.jpg" alt="cover"><div class="content is-center"><div class="date"><i class="far fa-calendar-alt fa-fw"></i> 2024-03-19</div><div class="title">一起探索C++类内存分布</div></div></a></div><div><a href="/posts/35899.html" title="C++编译期多态与运行期多态"><img class="cover" src= "/img/loading.gif" data-lazy-src="/img/background.jpg" alt="cover"><div class="content is-center"><div class="date"><i class="far fa-calendar-alt fa-fw"></i> 2022-02-07</div><div class="title">C++编译期多态与运行期多态</div></div></a></div></div></div><hr class="custom-hr"/><div id="post-comment"><div class="comment-head"><div class="comment-headline"><i class="fas fa-comments fa-fw"></i><span> 评论</span></div><div class="comment-switch"><span class="first-comment">Gitalk</span><span id="switch-btn"></span><span class="second-comment">Livere</span></div></div><div class="comment-wrap"><div><div id="gitalk-container"></div></div><div><div id="lv-container" data-id="city" data-uid="MTAyMC81OTA5MS8zNTU1Mw=="></div></div></div></div></div><div class="aside-content" id="aside-content"><div class="card-widget card-info"><div class="is-center"><div class="avatar-img"><img src= "/img/loading.gif" data-lazy-src="https://zyjblogs.cn/logo.jpg" onerror="this.onerror=null;this.src='/img/friend_404.gif'" alt="avatar"/></div><div class="author-info__name">逝水无痕</div><div class="author-info__description">给时光以生命,给岁月以文明</div></div><div class="card-info-data site-data is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">26</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">22</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">9</div></a></div><a id="card-info-btn" target="_blank" rel="noopener" href="https://github.com/zyjnicemoe"><i class="fab fa-github"></i><span>GitHub主页</span></a><div class="card-info-social-icons is-center"><a class="social-icon" href="https://github.com/zyjnicemoe" target="_blank" title="Github"><i class="fab fa-github"></i></a><a class="social-icon" href="mailto:1317453947@qq.com" target="_blank" title="Email"><i class="fas fa-envelope"></i></a><a class="social-icon" href="/atom.xml" target="_blank" title=""><i class="fas fa-rss"></i></a></div></div><div class="card-widget card-announcement"><div class="item-headline"><i class="fas fa-bullhorn fa-shake"></i><span>公告</span></div><div class="announcement_content"><a href="https://zyjblogs.cn">逝水无痕の博客https://zyjblogs.cn迁移到此</a></div></div><div class="sticky_layout"><div class="card-widget" id="card-toc"><div class="item-headline"><i class="fas fa-stream"></i><span>目录</span><span class="toc-percentage"></span></div><div class="toc-content"><ol class="toc"><li class="toc-item toc-level-1"><a class="toc-link" href="#C-%E5%90%8E%E5%8F%B0"><span class="toc-number">1.</span> <span class="toc-text">C++后台</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#%E5%AD%A6%E4%B9%A0%E7%AF%87%EF%BC%9A"><span class="toc-number">1.1.</span> <span class="toc-text">学习篇:</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#%E4%B8%80%E3%80%81%E4%B8%80%E4%B8%AA%E9%A1%B9%E7%9B%AE%E5%85%A5%E9%97%A8C-%E8%B6%B3%E4%BB%A5%EF%BC%9ACPlusPlusThings"><span class="toc-number">1.1.1.</span> <span class="toc-text">一、一个项目入门C++足以CPlusPlusThings.</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#%E4%BA%8C%E3%80%81C-%E5%AE%9E%E7%8E%B0%E7%9A%84%E7%AE%97%E6%B3%95%E5%90%88%E9%9B%86%EF%BC%9AC-Plus-Plus"><span class="toc-number">1.1.2.</span> <span class="toc-text">二、C++实现的算法合集C-Plus-Plus</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#%E4%B8%89%E3%80%81%E8%BF%9B%E9%98%B6%E6%8C%87%E5%8D%97%EF%BC%9ACppTemplateTutorial"><span class="toc-number">1.1.3.</span> <span class="toc-text">三、进阶指南CppTemplateTutorial</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E5%B0%8F%E8%AF%95%E7%89%9B%E5%88%80%E7%AF%87"><span class="toc-number">1.2.</span> <span class="toc-text">小试牛刀篇</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#%E4%B8%80%E3%80%81%E5%86%99%E4%B8%80%E4%B8%AA%E5%B0%8F%E5%9E%8BSTL%E5%BA%93%EF%BC%9AMyTinySTL"><span class="toc-number">1.2.1.</span> <span class="toc-text">一、写一个小型STL库MyTinySTL</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#%E4%BA%8C%E3%80%81%E5%B0%8F%E5%AE%9E%E6%88%98%E2%80%94%E4%BF%84%E7%BD%97%E6%96%AF%E5%B9%BF%E5%9D%97%EF%BC%9ATinytetris"><span class="toc-number">1.2.2.</span> <span class="toc-text">二、小实战—俄罗斯广块Tinytetris</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#%E4%B8%89%E3%80%81%E5%AD%A6%E4%B9%A0%E4%B8%8B%E5%A4%A7%E4%BD%AC%E4%BB%AC%E7%9A%84%E4%BB%A3%E7%A0%81%EF%BC%8C%E5%81%9A%E4%B8%AA%E8%AE%A1%E7%AE%97%E5%99%A8%EF%BC%9Acalculator"><span class="toc-number">1.2.3.</span> <span class="toc-text">三、学习下大佬们的代码做个计算器calculator</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E5%A4%A7%E5%9E%8B%E9%A1%B9%E7%9B%AE%E7%AF%87%EF%BC%9A"><span class="toc-number">1.3.</span> <span class="toc-text">大型项目篇:</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#%E4%B8%80%E3%80%81C-C-%E9%AB%98%E9%A2%91%E9%87%8F%E5%8C%96%E6%8A%95%E8%B5%84%E4%BA%A4%E6%98%93%E5%B9%B3%E5%8F%B0%EF%BC%9AEliteQuant-Cpp"><span class="toc-number">1.3.1.</span> <span class="toc-text">一、C&#x2F;C++高频量化投资交易平台EliteQuant Cpp</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#%E4%BA%8C%E3%80%81%E5%BC%80%E6%BA%90%E7%BD%91%E7%9B%98%E4%BA%91%E5%AD%98%E5%82%A8-Seafile"><span class="toc-number">1.3.2.</span> <span class="toc-text">二、开源网盘云存储 Seafile</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#%E4%B8%89%E3%80%81%E5%9F%BA%E4%BA%8E-C-Python-%E7%9A%84%E5%BC%80%E6%BA%90%E9%87%8F%E5%8C%96%E4%BA%A4%E6%98%93%E7%A0%94%E7%A9%B6%E6%A1%86%E6%9E%B6-Hikyuu"><span class="toc-number">1.3.3.</span> <span class="toc-text">三、基于 C++&#x2F;Python 的开源量化交易研究框架 Hikyuu</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#%E5%9B%9B%E3%80%81%E5%BC%80%E6%BA%90%E8%87%AA%E5%8A%A8%E9%A9%BE%E9%A9%B6%E5%B9%B3%E5%8F%B0-ApolloAuto"><span class="toc-number">1.3.4.</span> <span class="toc-text">四、开源自动驾驶平台 ApolloAuto</span></a></li></ol></li></ol></li></ol></div></div><div class="card-widget card-recent-post"><div class="item-headline"><i class="fas fa-history"></i><span>最新文章</span></div><div class="aside-list"><div class="aside-list-item"><a class="thumbnail" href="/posts/97da918c.html" title="C++编码优化之减少冗余拷贝或赋值"><img src= "/img/loading.gif" data-lazy-src="/img/background.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="C++编码优化之减少冗余拷贝或赋值"/></a><div class="content"><a class="title" href="/posts/97da918c.html" title="C++编码优化之减少冗余拷贝或赋值">C++编码优化之减少冗余拷贝或赋值</a><time datetime="2024-03-19T06:32:03.211Z" title="发表于 2024-03-19 14:32:03">2024-03-19</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/posts/0.html" title="C语言中三块难啃的硬骨头"><img src= "/img/loading.gif" data-lazy-src="/img/background.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="C语言中三块难啃的硬骨头"/></a><div class="content"><a class="title" href="/posts/0.html" title="C语言中三块难啃的硬骨头">C语言中三块难啃的硬骨头</a><time datetime="2024-03-19T06:29:41.998Z" title="发表于 2024-03-19 14:29:41">2024-03-19</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/posts/97623f3c.html" title="一起探索C++类内存分布"><img src= "/img/loading.gif" data-lazy-src="/img/background.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="一起探索C++类内存分布"/></a><div class="content"><a class="title" href="/posts/97623f3c.html" title="一起探索C++类内存分布">一起探索C++类内存分布</a><time datetime="2024-03-19T06:28:04.302Z" title="发表于 2024-03-19 14:28:04">2024-03-19</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/posts/b57ba5ed.html" title="C++内存管理"><img src= "/img/loading.gif" data-lazy-src="/img/background.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="C++内存管理"/></a><div class="content"><a class="title" href="/posts/b57ba5ed.html" title="C++内存管理">C++内存管理</a><time datetime="2024-03-19T06:27:19.919Z" title="发表于 2024-03-19 14:27:19">2024-03-19</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/posts/f5786ffa.html" title="详细分析JDK中Stream的实现原理"><img src= "/img/loading.gif" data-lazy-src="/img/background.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="详细分析JDK中Stream的实现原理"/></a><div class="content"><a class="title" href="/posts/f5786ffa.html" title="详细分析JDK中Stream的实现原理">详细分析JDK中Stream的实现原理</a><time datetime="2024-03-19T06:24:23.059Z" title="发表于 2024-03-19 14:24:23">2024-03-19</time></div></div></div></div></div></div></main><footer id="footer"><div id="footer-wrap"><div class="copyright">&copy;2019 - 2024 By 逝水无痕</div><div class="framework-info"><span>框架 </span><a target="_blank" rel="noopener" href="https://hexo.io">Hexo</a><span class="footer-separator">|</span><span>主题 </span><a target="_blank" rel="noopener" href="https://github.com/jerryc127/hexo-theme-butterfly">Butterfly</a></div><div class="footer_custom_text"><div><img style="padding-top:2px" src= "/img/loading.gif" data-lazy-src="https://sp-ao.shortpixel.ai/client/q_glossy,ret_img/https://zyjblogs.cn/img/icp.png"><a class="banquan" style="color:#000" href="https://beian.miit.gov.cn/" target="_blank" data-pjax-state="">鄂ICP备19023232号</a></div></div></div></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="readmode" type="button" title="阅读模式"><i class="fas fa-book-open"></i></button><button id="darkmode" type="button" title="浅色和深色模式转换"><i class="fas fa-adjust"></i></button><button id="hide-aside-btn" type="button" title="单栏和双栏切换"><i class="fas fa-arrows-alt-h"></i></button></div><div id="rightside-config-show"><button id="rightside-config" type="button" title="设置"><i class="fas fa-cog fa-spin"></i></button><button class="close" id="mobile-toc-button" type="button" title="目录"><i class="fas fa-list-ul"></i></button><a id="to_comment" href="#post-comment" title="直达评论"><i class="fas fa-comments"></i></a><button id="go-up" type="button" title="回到顶部"><span class="scroll-percent"></span><i class="fas fa-arrow-up"></i></button></div></div><div><script src="/js/utils.js"></script><script src="/js/main.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/fancyapps-ui/5.0.24/fancybox/fancybox.umd.min.js"></script><script src="https://jsd.cdn.zzko.cn/npm/instant.page/instantpage.min.js" type="module"></script><script src="https://jsd.cdn.zzko.cn/npm/vanilla-lazyload/dist/lazyload.iife.min.js"></script><div class="js-pjax"><script>(() => {
const initGitalk = () => {
const gitalk = new Gitalk(Object.assign({
clientID: '1a0096e15a280c158e14',
clientSecret: 'e46170a701da1f83f2a9fcbf7ec23475a511834a',
repo: 'hexo.zyjblogs.cn_comments',
owner: 'zyjnicemoe',
admin: ['zyjnicemoe'],
id: 'c14ef236b4da99a534474250dd5cac01',
updateCountCallback: commentCount
},{"proxy":"https://proxy.cors.sh/https://github.com/login/oauth/access_token"}))
gitalk.render('gitalk-container')
}
const loadGitalk = async() => {
if (typeof Gitalk === 'function') initGitalk()
else {
await getCSS('https://jsd.cdn.zzko.cn/npm/gitalk/dist/gitalk.min.css')
await getScript('https://jsd.cdn.zzko.cn/npm/gitalk@latest/dist/gitalk.min.js')
initGitalk()
}
}
const commentCount = n => {
const isCommentCount = document.querySelector('#post-meta .gitalk-comment-count')
if (isCommentCount) {
isCommentCount.textContent= n
}
}
if ('Gitalk' === 'Gitalk' || !true) {
if (true) btf.loadComment(document.getElementById('gitalk-container'), loadGitalk)
else loadGitalk()
} else {
window.loadOtherComment = loadGitalk
}
})()</script><script>(()=>{
const loadLivere = () => {
if (typeof LivereTower === 'object') window.LivereTower.init()
else {
(function(d, s) {
var j, e = d.getElementsByTagName(s)[0];
if (typeof LivereTower === 'function') { return; }
j = d.createElement(s);
j.src = 'https://cdn-city.livere.com/js/embed.dist.js';
j.async = true;
e.parentNode.insertBefore(j, e);
})(document, 'script');
}
}
if ('Gitalk' === 'Livere' || !true) {
if (true) btf.loadComment(document.getElementById('lv-container'), loadLivere)
else loadLivere()
} else {
window.loadOtherComment = loadLivere
}
})()</script></div><script src="https://jsd.cdn.zzko.cn/npm/butterfly-extsrc@1/dist/activate-power-mode.min.js"></script><script>POWERMODE.colorful = true;
POWERMODE.shake = false;
POWERMODE.mobile = false;
document.body.addEventListener('input', POWERMODE);
</script><script src="https://cdnjs.cloudflare.com/ajax/libs/pjax/0.2.8/pjax.min.js"></script><script>let pjaxSelectors = ["head > title","#config-diff","#body-wrap","#rightside-config-hide","#rightside-config-show",".js-pjax"]
var pjax = new Pjax({
elements: 'a:not([target="_blank"]):not([href="/talking/"])',
selectors: pjaxSelectors,
cacheBust: false,
analytics: false,
scrollRestoration: false
})
document.addEventListener('pjax:send', function () {
// removeEventListener
btf.removeGlobalFnEvent('pjax')
btf.removeGlobalFnEvent('themeChange')
document.getElementById('rightside').classList.remove('rightside-show')
if (window.aplayers) {
for (let i = 0; i < window.aplayers.length; i++) {
if (!window.aplayers[i].options.fixed) {
window.aplayers[i].destroy()
}
}
}
typeof typed === 'object' && typed.destroy()
//reset readmode
const $bodyClassList = document.body.classList
$bodyClassList.contains('read-mode') && $bodyClassList.remove('read-mode')
typeof disqusjs === 'object' && disqusjs.destroy()
})
document.addEventListener('pjax:complete', function () {
window.refreshFn()
document.querySelectorAll('script[data-pjax]').forEach(item => {
const newScript = document.createElement('script')
const content = item.text || item.textContent || item.innerHTML || ""
Array.from(item.attributes).forEach(attr => newScript.setAttribute(attr.name, attr.value))
newScript.appendChild(document.createTextNode(content))
item.parentNode.replaceChild(newScript, item)
})
GLOBAL_CONFIG.islazyload && window.lazyLoadInstance.update()
typeof panguInit === 'function' && panguInit()
// google analytics
typeof gtag === 'function' && gtag('config', '', {'page_path': window.location.pathname});
// baidu analytics
typeof _hmt === 'object' && _hmt.push(['_trackPageview',window.location.pathname]);
typeof loadMeting === 'function' && document.getElementsByClassName('aplayer').length && loadMeting()
// prismjs
typeof Prism === 'object' && Prism.highlightAll()
})
document.addEventListener('pjax:error', e => {
if (e.request.status === 404) {
pjax.loadUrl('/404.html')
}
})</script><script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script><div id="local-search"><div class="search-dialog"><nav class="search-nav"><span class="search-dialog-title">搜索</span><span id="loading-status"></span><button class="search-close-button"><i class="fas fa-times"></i></button></nav><div class="is-center" id="loading-database"><i class="fas fa-spinner fa-pulse"></i><span> 数据库加载中</span></div><div class="search-wrap"><div id="local-search-input"><div class="local-search-box"><input class="local-search-box--input" placeholder="搜索文章" type="text"/></div></div><hr/><div id="local-search-results"></div><div id="local-search-stats-wrap"></div></div></div><div id="search-mask"></div><script src="/js/search/local-search.js"></script></div></div></body></html>