1<!DOCTYPE html><html lang="zh-CN" data-theme="dark"><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>æ ç¾ | DarkSharpness's Dungeon</title><meta name="author" content="DarkSharpness"><meta name="copyright" content="DarkSharpness"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#0d0d0d"><meta name="description" content="NULL"> 2<meta property="og:type" content="website"> 3<meta property="og:title" content="æ ç¾"> 4<meta property="og:url" content="http://darksharpness.github.io/tags/index.html"> 5<meta property="og:site_name" content="DarkSharpness's Dungeon"> 6<meta property="og:description" content="NULL"> 7<meta property="og:locale" content="zh_CN"> 8<meta property="og:image" content="https://s2.loli.net/2023/01/28/SnEi2v9sdczUuyG.png"> 9<meta property="article:published_time" content="2022-09-11T08:38:55.000Z"> 10<meta property="article:modified_time" content="2024-12-31T05:29:04.683Z"> 11<meta property="article:author" content="DarkSharpness"> 12<meta property="article:tag" content="DarkSharpness"> 13<meta name="twitter:card" content="summary"> 14<meta name="twitter:image" content="https://s2.loli.net/2023/01/28/SnEi2v9sdczUuyG.png">
14<script type="application/ld+json"></script>
14<link rel="shortcut icon" href="https://s2.loli.net/2023/01/28/SnEi2v9sdczUuyG.png"><link rel="canonical" href="http://darksharpness.github.io/tags/index.html"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//busuanzi.ibruce.info"/><link rel="stylesheet" href="/css/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/css/all.min.css">
14<script> 15 (() => { 16 17 const saveToLocal = { 18 set: (key, value, ttl) => { 19 if (!ttl) return 20 const expiry = Date.now() + ttl * 86400000 21 localStorage.setItem(key, JSON.stringify({ value, expiry })) 22 }, 23 get: key => { 24 const itemStr = localStorage.getItem(key) 25 if (!itemStr) return undefined 26 const { value, expiry } = JSON.parse(itemStr) 27 if (Date.now() > expiry) { 28 localStorage.removeItem(key) 29 return undefined 30 } 31 return value 32 } 33 } 34 35 window.btf = { 36 saveToLocal, 37 getScript: (url, attr = {}) => new Promise((resolve, reject) => { 38 const script = document.createElement('script') 39 script.src = url 40 script.async = true 41 Object.entries(attr).forEach(([key, val]) => script.setAttribute(key, val)) 42 script.onload = script.onreadystatechange = () => { 43 if (!script.readyState || /loaded|complete/.test(script.readyState)) resolve() 44 } 45 script.onerror = reject 46 document.head.appendChild(script) 47 }), 48 getCSS: (url, id) => new Promise((resolve, reject) => { 49 const link = document.createElement('link') 50 link.rel = 'stylesheet' 51 link.href = url 52 if (id) link.id = id 53 link.onload = link.onreadystatechange = () => { 54 if (!link.readyState || /loaded|complete/.test(link.readyState)) resolve() 55 } 56 link.onerror = reject 57 document.head.appendChild(link) 58 }), 59 addGlobalFn: (key, fn, name = false, parent = window) => { 60 if (!true && key.startsWith('pjax')) return 61 const globalFn = parent.globalFn || {} 62 globalFn[key] = globalFn[key] || {} 63 globalFn[key][name || Object.keys(globalFn[key]).length] = fn 64 parent.globalFn = globalFn 65 } 66 } 67 68 69 const activateDarkMode = () => { 70 document.documentElement.setAttribute('data-theme', 'dark') 71 if (document.querySelector('meta[name="theme-color"]') !== null) { 72 document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d') 73 } 74 } 75 const activateLightMode = () => { 76 document.documentElement.setAttribute('data-theme', 'light') 77 if (document.querySelector('meta[name="theme-color"]') !== null) { 78 document.querySelector('meta[name="theme-color"]').setAttribute('content', '#ffffff') 79 } 80 } 81 82 btf.activateDarkMode = activateDarkMode 83 btf.activateLightMode = activateLightMode 84 85 const theme = saveToLocal.get('theme') 86 87 const mediaQueryDark = window.matchMedia('(prefers-color-scheme: dark)') 88 const mediaQueryLight = window.matchMedia('(prefers-color-scheme: light)') 89 90 if (theme === undefined) { 91 if (mediaQueryLight.matches) activateLightMode() 92 else if (mediaQueryDark.matches) activateDarkMode() 93 else { 94 const hour = new Date().getHours() 95 const isNight = hour <= 6 || hour >= 18 96 isNight ? activateDarkMode() : activateLightMode() 97 } 98 mediaQueryDark.addEventListener('change', () => { 99 if (saveToLocal.get('theme') === undefined) { 100 e.matches ? activateDarkMode() : activateLightMode() 101 } 102 }) 103 } else { 104 theme === 'light' ? activateLightMode() : activateDarkMode() 105 } 106 107 108 const asideStatus = saveToLocal.get('aside-status') 109 if (asideStatus !== undefined) { 110 document.documentElement.classList.toggle('hide-aside', asideStatus === 'hide') 111 } 112 113 114 const detectApple = () => { 115 if (/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)) { 116 document.documentElement.classList.add('apple') 117 } 118 } 119 detectApple() 120 121 })() 122 </script>
122<script>const GLOBAL_CONFIG = { 123 root: '/', 124 algolia: undefined, 125 localSearch: {"path":"/search.xml","preload":false,"top_n_per_article":1,"unescape":false,"pagination":{"enable":false,"hitsPerPage":8},"languages":{"hits_empty":"æªæ¾å°ç¬¦åæ¨æ¥è¯¢çå 容ï¼${query}","hits_stats":"å ±æ¾å° ${hits} ç¯æç« "}}, 126 translate: {"defaultEncoding":2,"translateDelay":0,"msgToTraditionalChinese":"ç¹","msgToSimplifiedChinese":"ç°¡"}, 127 highlight: {"plugin":"highlight.js","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":1000,"highlightFullpage":false,"highlightMacStyle":true}, 128 copy: { 129 success: 'å¤å¶æå', 130 error: 'å¤å¶å¤±è´¥', 131 noSupport: 'æµè§å¨ä¸æ¯æ' 132 }, 133 relativeDate: { 134 homepage: false, 135 post: false 136 }, 137 runtime: '', 138 dateSuffix: { 139 just: 'åå', 140 min: 'åéå', 141 hour: 'å°æ¶å', 142 day: '天å', 143 month: '个æå' 144 }, 145 copyright: undefined, 146 lightbox: 'null', 147 Snackbar: undefined, 148 infinitegrid: { 149 js: 'https://cdn.jsdelivr.net/npm/@egjs/infinitegrid/dist/infinitegrid.min.js', 150 buttonText: 'å è½½æ´å¤' 151 }, 152 isPhotoFigcaption: true, 153 islazyloadPlugin: false, 154 isAnchor: true, 155 percent: { 156 toc: true, 157 rightside: false, 158 }, 159 autoDarkmode: true 160}</script>
160<script id="config-diff">var GLOBAL_CONFIG_SITE = { 161 title: 'æ ç¾', 162 isHighlightShrink: false, 163 isToc: false, 164 pageType: 'page' 165}</script>
165<link rel="stylesheet" href="/css/user.css"><link rel="stylesheet" href="/css/font.css"><meta name="generator" content="Hexo 7.3.0"><link rel="alternate" href="/atom.xml" title="DarkSharpness's Dungeon" type="application/atom+xml"> 166</head><body><div id="web_bg" style="background: black;"></div><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="avatar-img text-center"><img src="https://s2.loli.net/2023/01/28/SnEi2v9sdczUuyG.png" onerror="this.onerror=null;this.src='/img/friend_404.gif'" alt="avatar"/ loading='lazy'></div><div class="site-data text-center"><a href="/archives/"><div class="headline">æç« </div><div class="length-num">39</div></a><a href="/tags/"><div class="headline">æ ç¾</div><div class="length-num">26</div></a><a href="/categories/"><div class="headline">åç±»</div><div class="length-num">27</div></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"><span class="site-page group"><i class="fa-fw fas fa-list"></i><span> æç« </span><i class="fas fa-chevron-down"></i></span><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="/tags/"><i class="fa-fw fas fa-tags"></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></ul></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 class="menus_item"><span class="site-page group"><i class="fa-fw fas fa-ellipsis-h"></i><span> æç©</span><i class="fas fa-chevron-down"></i></span><ul class="menus_item_child"><li><a class="site-page child" href="/music/"><i class="fa-fw fas fa-music"></i><span> é³ä¹</span></a></li><li><a class="site-page child" href="/photo/"><i class="fa-fw fas fa-image"></i><span> å¾åº</span></a></li><li><a class="site-page child" href="/diary/"><i class="fa-fw fas fa-book"></i><span> æ¥è®°</span></a></li></ul></div></div></div></div><div class="page type-tags" id="body-wrap"><header class="not-home-page" id="page-header" style="background-image: url(https://s3.bmp.ovh/imgs/2023/12/22/4263aa94d54ca3fb.jpg);"><nav id="nav"><span id="blog-info"><a class="nav-site-title" href="/"><img class="site-icon" src="https://s2.loli.net/2023/01/28/SnEi2v9sdczUuyG.png" alt="Logo" loading='lazy'><span class="site-name">DarkSharpness's Dungeon</span></a></span><div id="menus"><div id="search-button"><span class="site-page social-icon search"><i class="fas fa-search fa-fw"></i><span> æç´¢</span></span></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"><span class="site-page group"><i class="fa-fw fas fa-list"></i><span> æç« </span><i class="fas fa-chevron-down"></i></span><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="/tags/"><i class="fa-fw fas fa-tags"></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></ul></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 class="menus_item"><span class="site-page group"><i class="fa-fw fas fa-ellipsis-h"></i><span> æç©</span><i class="fas fa-chevron-down"></i></span><ul class="menus_item_child"><li><a class="site-page child" href="/music/"><i class="fa-fw fas fa-music"></i><span> é³ä¹</span></a></li><li><a class="site-page child" href="/photo/"><i class="fa-fw fas fa-image"></i><span> å¾åº</span></a></li><li><a class="site-page child" href="/diary/"><i class="fa-fw fas fa-book"></i><span> æ¥è®°</span></a></li></ul></div></div><div id="toggle-menu"><span class="site-page"><i class="fas fa-bars fa-fw"></i></span></div></div></nav><div id="page-site-info"><h1 id="site-title">æ ç¾</h1></div></header><main class="layout hide-aside" id="content-inner"><div id="page"><div class="tag-cloud-list text-center"><a href="/tags/%E7%AE%97%E6%B3%95/" style="font-size: 1.3em; background-color: rgb(107, 50, 150);">ç®æ³</a><a href="/tags/%E6%A8%A1%E6%8B%9F/" style="font-size: 1.2em; background-color: rgb(167, 184, 100);">模æ</a><a href="/tags/%E6%95%B0%E5%AD%A6/" style="font-size: 1.2em; background-color: rgb(141, 50, 50);">æ°å¦</a><a href="/tags/%E6%95%B0%E8%AE%BA/" style="font-size: 1.2em; background-color: rgb(196, 179, 70);">æ°è®º</a><a href="/tags/%E6%A0%91%E5%BD%A2%E7%BB%93%E6%9E%84/" style="font-size: 1.3em; background-color: rgb(50, 50, 128);">æ å½¢ç»æ</a><a href="/tags/%E5%A0%86/" style="font-size: 1.2em; background-color: rgb(125, 50, 50);">å </a><a href="/tags/%E9%9A%8F%E7%AC%94/" style="font-size: 1.45em; background-color: rgb(100, 150, 50);">éç¬</a><a href="/tags/%E7%BC%96%E8%AF%91%E5%99%A8/" style="font-size: 1.2em; background-color: rgb(50, 123, 104);">ç¼è¯å¨</a><a href="/tags/%E4%BC%98%E5%8C%96/" style="font-size: 1.3em; background-color: rgb(57, 78, 184);">ä¼å</a><a href="/tags/C/" style="font-size: 1.4em; background-color: rgb(141, 156, 88);">C++</a><a href="/tags/%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/" style="font-size: 1.5em; background-color: rgb(114, 151, 50);">åºç¡ç¥è¯</a><a href="/tags/STL/" style="font-size: 1.35em; background-color: rgb(191, 199, 50);">STL</a><a href="/tags/%E5%B9%B3%E8%A1%A1%E6%A0%91/" style="font-size: 1.2em; background-color: rgb(53, 50, 50);">平衡æ </a><a href="/tags/%E4%BD%9C%E4%B8%9A/" style="font-size: 1.25em; background-color: rgb(50, 53, 187);">ä½ä¸</a><a href="/tags/%E8%B0%83%E8%AF%95/" style="font-size: 1.2em;
166 background-color: rgb(126, 159, 136);">è°è¯</a><a href="/tags/KMP/" style="font-size: 1.2em; background-color: rgb(164, 153, 170);">KMP</a><a href="/tags/%E5%AD%97%E7%AC%A6%E4%B8%B2Hash/" style="font-size: 1.2em; background-color: rgb(50, 144, 144);">å符串Hash</a><a href="/tags/%E5%AD%97%E7%AC%A6%E4%B8%B2/" style="font-size: 1.25em; background-color: rgb(186, 132, 163);">å符串</a><a href="/tags/Minecraft/" style="font-size: 1.2em; background-color: rgb(193, 50, 74);">Minecraft</a><a href="/tags/system/" style="font-size: 1.2em; background-color: rgb(161, 50, 67);">system</a><a href="/tags/LLM-serving/" style="font-size: 1.2em; background-color: rgb(50, 133, 57);">LLM-serving</a><a href="/tags/%E7%89%A9%E7%90%86/" style="font-size: 1.25em; background-color: rgb(136, 50, 50);">ç©ç</a><a href="/tags/%E7%83%AD%E5%AD%A6/" style="font-size: 1.2em; background-color: rgb(135, 146, 50);">çå¦</a><a href="/tags/%E7%BA%BF%E6%AE%B5%E6%A0%91/" style="font-size: 1.2em; background-color: rgb(104, 65, 50);">线段æ </a><a href="/tags/%E6%A0%91%E9%93%BE%E5%89%96%E5%88%86/" style="font-size: 1.2em; background-color: rgb(182, 50, 198);">æ é¾åå</a><a href="/tags/%E7%89%A9%E7%90%86%E7%AB%9E%E8%B5%9B/" style="font-size: 1.2em; background-color: rgb(108, 52, 197);">ç©çç«èµ</a></div></div></main><footer id="footer"><div class="footer-other"><div class="footer-copyright"><span class="copyright">© 2022 - 2026 By DarkSharpness</span></div><div class="footer_custom_text">DarkSharpness welcomes you!</div></div></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="translateLink" type="button" title="ç®ç¹è½¬æ¢">ç¹</button><button id="darkmode" type="button" title="æ¥é´åå¤é´æ¨¡å¼åæ¢"><i class="fas fa-adjust"></i></button><button id="blur_toggle" type="button" title="åæ¢èæ¯æ¨¡ç³"><i class="fas fa-cloud"></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 id="go-up" type="button" title="åå°é¡¶é¨"><span class="scroll-percent"></span><i class="fas fa-arrow-up"></i></button></div></div><div>
166<script src="/js/utils.js"></script>
166<script src="/js/main.js"></script>
166<script src="/js/tw_cn.js"></script>
166<script src="https://cdn.jsdelivr.net/npm/instant.page/instantpage.min.js" type="module"></script>
166<div class="js-pjax"></div>
166<script src="/js/meting.min.js"></script>
166<script src="/js/user.js"></script>
166<div class="aplayer no-destroy" data-volume="0.1" data-id="8149615949" data-autoplay="false" data-server="netease" data-type="playlist" data-loop="all" data-order="random" data-fixed="true" mutex="true"> </div><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.css" media="print" onload="this.media='all'">
166<script src="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.js"></script>
166<script src="https://cdn.jsdelivr.net/npm/butterfly-extsrc/metingjs/dist/Meting.min.js"></script>
166<script>(() => { 167 const destroyAplayer = () => { 168 if (window.aplayers) { 169 for (let i = 0; i < window.aplayers.length; i++) { 170 if (!window.aplayers[i].options.fixed) { 171 window.aplayers[i].destroy() 172 } 173 } 174 } 175 } 176 177 const runMetingJS = () => { 178 typeof loadMeting === 'function' && document.getElementsByClassName('aplayer').length && loadMeting() 179 } 180 181 btf.addGlobalFn('pjaxSend', destroyAplayer, 'destroyAplayer') 182 btf.addGlobalFn('pjaxComplete', loadMeting, 'runMetingJS') 183})()</script>
183<script src="https://cdn.jsdelivr.net/npm/pjax/pjax.min.js"></script>
183<script>(() => { 184 const pjaxSelectors = ["meta[property=\"og:image\"]","meta[property=\"og:title\"]","meta[property=\"og:url\"]","meta[property=\"og:description\"]","link[rel=\"canonical\"]","head > title","#config-diff","#body-wrap","#rightside-config-hide","#rightside-config-show",".js-pjax"] 185 186 window.pjax = new Pjax({ 187 elements: 'a:not([target="_blank"])', 188 selectors: pjaxSelectors, 189 cacheBust: false, 190 analytics: false, 191 scrollRestoration: false 192 }) 193 194 const triggerPjaxFn = (val) => { 195 if (!val) return 196 Object.values(val).forEach(fn => { 197 try { 198 fn() 199 } catch (err) { 200 console.debug('Pjax callback failed:', err) 201 } 202 }) 203 } 204 205 document.addEventListener('pjax:send', () => { 206 // removeEventListener 207 btf.removeGlobalFnEvent('pjaxSendOnce') 208 btf.removeGlobalFnEvent('themeChange') 209 210 // reset readmode 211 const $bodyClassList = document.body.classList 212 if ($bodyClassList.contains('read-mode')) $bodyClassList.remove('read-mode') 213 214 triggerPjaxFn(window.globalFn.pjaxSend) 215 }) 216 217 document.addEventListener('pjax:complete', () => { 218 btf.removeGlobalFnEvent('pjaxCompleteOnce') 219 document.querySelectorAll('script[data-pjax]').forEach(item => { 220 const newScript = document.createElement('script') 221 const content = item.text || item.textContent || item.innerHTML || "" 222 Array.from(item.attributes).forEach(attr => newScript.setAttribute(attr.name, attr.value)) 223 newScript.appendChild(document.createTextNode(content)) 224 item.parentNode.replaceChild(newScript, item) 225 }) 226 227 triggerPjaxFn(window.globalFn.pjaxComplete) 228 }) 229 230 document.addEventListener('pjax:error', e => { 231 if (e.request.status === 404) { 232 const usePjax = true 233 true 234 ? (usePjax ? pjax.loadUrl('/404.html') : window.location.href = '/404.html') 235 : window.location.href = e.request.responseURL 236 } 237 }) 238})()</script>
238<script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
238<div id="local-search"><div class="search-dialog"><nav class="search-nav"><span class="search-dialog-title">æç´¢</span><i class="fas fa-spinner fa-pulse" id="loading-status" hidden="hidden"></i><button class="search-close-button"><i class="fas fa-times"></i></button></nav><div class="text-center" id="loading-database"><i class="fas fa-spinner fa-pulse"></i><span> æ°æ®å è½½ä¸</span></div><div class="local-search-input"><input placeholder="æç´¢æç« " type="text"/></div><hr/><div id="local-search-results"></div><div class="ais-Pagination" id="local-search-pagination" style="display:none;"><ul class="ais-Pagination-list"></ul></div><div id="local-search-stats"></div></div><div id="search-mask"></div>
238<script src="/js/search/local-search.js"></script>
238</div></div></body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.