news 2026/4/26 2:43:58

【C/C++ 智能指针的空实现】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【C/C++ 智能指针的空实现】

智能指针的空实现(Dummy Smart Pointers)

在 C++ 中,智能指针是管理动态内存的重要工具。下面我将展示unique_ptrshared_ptr的空实现(简化版本),这些实现保留了核心概念但移除了标准库的复杂性,适合教学目的。

unique_ptr 的空实现

代码语言:javascript

AI代码解释

#include <utility> // for std::swap template <typename T> class unique_ptr { T* ptr = nullptr; public: // 构造函数 explicit unique_ptr(T* p = nullptr) : ptr(p) {} // 禁止拷贝 unique_ptr(const unique_ptr&) = delete; unique_ptr& operator=(const unique_ptr&) = delete; // 移动语义 unique_ptr(unique_ptr&& other) noexcept : ptr(other.release()) {} unique_ptr& operator=(unique_ptr&& other) noexcept { reset(other.release()); return *this; } // 析构函数 ~unique_ptr() { delete ptr; } // 核心功能 T* release() noexcept { T* p = ptr; ptr = nullptr; return p; } void reset(T* p = nullptr) noexcept { delete ptr; ptr = p; } void swap(unique_ptr& other) noexcept { std::swap(ptr, other.ptr); } // 访问器 T* get() const noexcept { return ptr; } T& operator*() const noexcept { return *ptr; } T* operator->() const noexcept { return ptr; } explicit operator bool() const noexcept { return ptr != nullptr; } };
shared_ptr 的空实现

代码语言:javascript

AI代码解释

template <typename T> class shared_ptr { T* ptr = nullptr; int* count = nullptr; void release() { if (count && --(*count) == 0) { delete ptr; delete count; } ptr = nullptr; count = nullptr; } public: // 构造函数 explicit shared_ptr(T* p = nullptr) : ptr(p), count(p ? new int(1) : nullptr) {} // 拷贝语义 shared_ptr(const shared_ptr& other) : ptr(other.ptr), count(other.count) { if (count) ++(*count); } shared_ptr& operator=(const shared_ptr& other) { if (this != &other) { release(); ptr = other.ptr; count = other.count; if (count) ++(*count); } return *this; } // 移动语义 shared_ptr(shared_ptr&& other) noexcept : ptr(other.ptr), count(other.count) { other.ptr = nullptr; other.count = nullptr; } shared_ptr& operator=(shared_ptr&& other) noexcept { if (this != &other) { release(); ptr = other.ptr; count = other.count; other.ptr = nullptr; other.count = nullptr; } return *this; } // 析构函数 ~shared_ptr() { release(); } // 核心功能 void reset(T* p = nullptr) { release(); ptr = p; count = p ? new int(1) : nullptr; } void swap(shared_ptr& other) noexcept { std::swap(ptr, other.ptr); std::swap(count, other.count); } // 访问器 T* get() const noexcept { return ptr; } T& operator*() const noexcept { return *ptr; } T* operator->() const noexcept { return ptr; } explicit operator bool() const noexcept { return ptr != nullptr; } int use_count() const noexcept { return count ? *count : 0; } };
对比表格:空实现 vs 标准库实现

特性

空实现

标准库实现

基础内存管理

移动语义

引用计数

✓ (shared_ptr)

自定义删除器

数组支持

✓ (unique_ptr<T[]>)

原子操作

✓ (shared_ptr)

类型转换

✓ (const_pointer_cast等)

weak_ptr支持

make_shared/make_unique

异常安全

基础

完整

性能优化

✓ (如控制块合并)

使用示例

代码语言:javascript

AI代码解释

class Resource { public: Resource() { std::cout << "Resource created\n"; } ~Resource() { std::cout << "Resource destroyed\n"; } void use() { std::cout << "Using resource\n"; } }; int main() { // unique_ptr 示例 { unique_ptr<Resource> uptr(new Resource()); uptr->use(); // 移动所有权 unique_ptr<Resource> uptr2 = std::move(uptr); if (!uptr) { std::cout << "uptr is now empty\n"; } } // uptr2 超出作用域,资源释放 // shared_ptr 示例 { shared_ptr<Resource> sptr1(new Resource()); std::cout << "Use count: " << sptr1.use_count() << "\n"; // 1 { shared_ptr<Resource> sptr2 = sptr1; std::cout << "Use count: " << sptr1.use_count() << "\n"; // 2 sptr2->use(); } std::cout << "Use count: " << sptr1.use_count() << "\n"; // 1 } // sptr1 超出作用域,资源释放 }
输出结果

代码语言:javascript

AI代码解释

Resource created Using resource uptr is now empty Resource destroyed Resource created Use count: 1 Use count: 2 Using resource Use count: 1 Resource destroyed
关键区别说明
  1. 自定义删除器
    • 标准库实现支持自定义删除器
    • 空实现使用固定的delete操作符
  2. 数组支持
    • 标准库unique_ptr支持unique_ptr<T[]>
    • 空实现不支持数组类型
  3. 线程安全
    • 标准库shared_ptr的引用计数是原子操作
    • 空实现不是线程安全的
  4. 内存效率
    • 标准库make_shared可以合并控制块和对象内存
    • 空实现总是单独分配对象和计数

m.5d15x.pro/Blog/573757.shtm
m.5d15x.pro/Blog/753331.shtm
m.5d15x.pro/Blog/355197.shtm
m.5d15x.pro/Blog/173991.shtm
m.5d15x.pro/Blog/337957.shtm
m.5d15x.pro/Blog/993739.shtm
m.5d15x.pro/Blog/755757.shtm
m.5d15x.pro/Blog/139375.shtm
m.5d15x.pro/Blog/793993.shtm
m.5d15x.pro/Blog/153919.shtm
m.5d15x.pro/Blog/937993.shtm
m.5d15x.pro/Blog/193371.shtm
m.5d15x.pro/Blog/559357.shtm
m.5d15x.pro/Blog/939779.shtm
m.5d15x.pro/Blog/755793.shtm
m.5d15x.pro/Blog/735999.shtm
m.5d15x.pro/Blog/951913.shtm
m.5d15x.pro/Blog/317551.shtm
m.5d15x.pro/Blog/173559.shtm
m.5d15x.pro/Blog/317377.shtm
m.5d15x.pro/Blog/137779.shtm
m.5d15x.pro/Blog/597533.shtm
m.5d15x.pro/Blog/719993.shtm
m.5d15x.pro/Blog/959391.shtm
m.5d15x.pro/Blog/195995.shtm
m.5d15x.pro/Blog/533333.shtm
m.5d15x.pro/Blog/151975.shtm
m.5d15x.pro/Blog/377795.shtm
m.5d15x.pro/Blog/199175.shtm
m.5d15x.pro/Blog/779317.shtm
m.5d15x.pro/Blog/479705.shtm
m.5d15x.pro/Blog/533799.shtm
m.5d15x.pro/Blog/155359.shtm
m.5d15x.pro/Blog/359359.shtm
m.5d15x.pro/Blog/397797.shtm
m.5d15x.pro/Blog/177517.shtm
m.5d15x.pro/Blog/797971.shtm
m.5d15x.pro/Blog/999557.shtm
m.5d15x.pro/Blog/593117.shtm
m.5d15x.pro/Blog/337539.shtm
m.5d15x.pro/Blog/515531.shtm
m.5d15x.pro/Blog/515377.shtm
m.5d15x.pro/Blog/391379.shtm
m.5d15x.pro/Blog/359137.shtm
m.5d15x.pro/Blog/735319.shtm
m.5d15x.pro/Blog/557959.shtm
m.5d15x.pro/Blog/391199.shtm
m.5d15x.pro/Blog/553915.shtm
m.5d15x.pro/Blog/795179.shtm
m.5d15x.pro/Blog/913373.shtm
m.5d15x.pro/Blog/577317.shtm
m.5d15x.pro/Blog/937139.shtm
m.5d15x.pro/Blog/135535.shtm
m.5d15x.pro/Blog/713197.shtm
m.5d15x.pro/Blog/757179.shtm
m.5d15x.pro/Blog/993731.shtm
m.5d15x.pro/Blog/191375.shtm
m.5d15x.pro/Blog/179935.shtm
m.5d15x.pro/Blog/559131.shtm
m.5d15x.pro/Blog/793513.shtm
m.5d15x.pro/Blog/533733.shtm
m.5d15x.pro/Blog/955175.shtm
m.5d15x.pro/Blog/119959.shtm
m.5d15x.pro/Blog/195335.shtm
m.5d15x.pro/Blog/191555.shtm
m.5d15x.pro/Blog/753157.shtm
m.5d15x.pro/Blog/975591.shtm
m.5d15x.pro/Blog/539175.shtm
m.5d15x.pro/Blog/319391.shtm
m.5d15x.pro/Blog/717173.shtm
m.5d15x.pro/Blog/399115.shtm
m.5d15x.pro/Blog/719535.shtm
m.5d15x.pro/Blog/111179.shtm
m.5d15x.pro/Blog/171137.shtm
m.5d15x.pro/Blog/599733.shtm
m.5d15x.pro/Blog/571371.shtm
m.5d15x.pro/Blog/757913.shtm
m.5d15x.pro/Blog/577173.shtm
m.5d15x.pro/Blog/935711.shtm
m.5d15x.pro/Blog/193579.shtm
m.5d15x.pro/Blog/735593.shtm
m.5d15x.pro/Blog/531117.shtm
m.5d15x.pro/Blog/311771.shtm
m.5d15x.pro/Blog/519197.shtm
m.5d15x.pro/Blog/979551.shtm
m.5d15x.pro/Blog/917155.shtm
m.5d15x.pro/Blog/591755.shtm
m.5d15x.pro/Blog/571517.shtm
m.5d15x.pro/Blog/711593.shtm
m.5d15x.pro/Blog/757715.shtm
m.5d15x.pro/Blog/197359.shtm
m.5d15x.pro/Blog/971397.shtm
m.5d15x.pro/Blog/319511.shtm
m.5d15x.pro/Blog/913911.shtm
m.5d15x.pro/Blog/995797.shtm
m.5d15x.pro/Blog/553597.shtm
m.5d15x.pro/Blog/753151.shtm
m.5d15x.pro/Blog/597339.shtm
m.5d15x.pro/Blog/171355.shtm
m.5d15x.pro/Blog/331719.shtm
m.5d15x.pro/Blog/737191.shtm
m.5d15x.pro/Blog/331751.shtm
m.5d15x.pro/Blog/515973.shtm
m.5d15x.pro/Blog/199373.shtm
m.5d15x.pro/Blog/995115.shtm
m.5d15x.pro/Blog/551939.shtm
m.5d15x.pro/Blog/979177.shtm
m.5d15x.pro/Blog/911197.shtm
m.5d15x.pro/Blog/155193.shtm
m.5d15x.pro/Blog/553935.shtm
m.5d15x.pro/Blog/591739.shtm
m.5d15x.pro/Blog/779751.shtm
m.5d15x.pro/Blog/175591.shtm
m.5d15x.pro/Blog/151513.shtm
m.5d15x.pro/Blog/557375.shtm
m.5d15x.pro/Blog/931171.shtm
m.5d15x.pro/Blog/791971.shtm
m.5d15x.pro/Blog/155373.shtm
m.5d15x.pro/Blog/355717.shtm
m.5d15x.pro/Blog/359711.shtm
m.5d15x.pro/Blog/755131.shtm
m.5d15x.pro/Blog/731373.shtm
m.5d15x.pro/Blog/335519.shtm
m.5d15x.pro/Blog/313311.shtm
m.5d15x.pro/Blog/919399.shtm
m.5d15x.pro/Blog/591311.shtm
m.5d15x.pro/Blog/793173.shtm
m.5d15x.pro/Blog/757177.shtm
m.5d15x.pro/Blog/377553.shtm
m.5d15x.pro/Blog/933313.shtm
m.5d15x.pro/Blog/195519.shtm
m.5d15x.pro/Blog/997137.shtm
m.5d15x.pro/Blog/395539.shtm
m.5d15x.pro/Blog/115997.shtm
m.5d15x.pro/Blog/775355.shtm
m.5d15x.pro/Blog/951379.shtm
m.5d15x.pro/Blog/551153.shtm
m.5d15x.pro/Blog/775375.shtm
m.5d15x.pro/Blog/115153.shtm
m.5d15x.pro/Blog/337977.shtm
m.5d15x.pro/Blog/997315.shtm
m.5d15x.pro/Blog/795155.shtm
m.5d15x.pro/Blog/595597.shtm
m.5d15x.pro/Blog/975159.shtm
m.5d15x.pro/Blog/731133.shtm
m.5d15x.pro/Blog/911953.shtm
m.5d15x.pro/Blog/397397.shtm
m.5d15x.pro/Blog/351711.shtm
m.5d15x.pro/Blog/197379.shtm
m.5d15x.pro/Blog/579397.shtm
m.5d15x.pro/Blog/917719.shtm
m.5d15x.pro/Blog/139371.shtm
m.5d15x.pro/Blog/517977.shtm
m.5d15x.pro/Blog/115177.shtm
m.5d15x.pro/Blog/351135.shtm
m.5d15x.pro/Blog/713799.shtm
m.5d15x.pro/Blog/799197.shtm
m.5d15x.pro/Blog/191573.shtm
m.5d15x.pro/Blog/971751.shtm
m.5d15x.pro/Blog/919379.shtm
m.5d15x.pro/Blog/159397.shtm
m.5d15x.pro/Blog/399399.shtm
m.5d15x.pro/Blog/575337.shtm
m.5d15x.pro/Blog/759755.shtm
m.5d15x.pro/Blog/173715.shtm
m.5d15x.pro/Blog/193951.shtm
m.5d15x.pro/Blog/311315.shtm
m.5d15x.pro/Blog/351137.shtm
m.5d15x.pro/Blog/775133.shtm
m.5d15x.pro/Blog/577937.shtm
m.5d15x.pro/Blog/131331.shtm
m.5d15x.pro/Blog/975513.shtm
m.5d15x.pro/Blog/193739.shtm
m.5d15x.pro/Blog/353953.shtm
m.5d15x.pro/Blog/791391.shtm
m.5d15x.pro/Blog/373713.shtm
m.5d15x.pro/Blog/511115.shtm
m.5d15x.pro/Blog/399339.shtm
m.5d15x.pro/Blog/111737.shtm
m.5d15x.pro/Blog/197571.shtm
m.5d15x.pro/Blog/115737.shtm
m.5d15x.pro/Blog/357735.shtm
m.5d15x.pro/Blog/171571.shtm
m.5d15x.pro/Blog/593195.shtm
m.5d15x.pro/Blog/377997.shtm
m.5d15x.pro/Blog/379557.shtm
m.5d15x.pro/Blog/111935.shtm
m.5d15x.pro/Blog/535135.shtm
m.5d15x.pro/Blog/515171.shtm
m.5d15x.pro/Blog/553979.shtm
m.5d15x.pro/Blog/779571.shtm
m.5d15x.pro/Blog/199395.shtm
m.5d15x.pro/Blog/599557.shtm
m.5d15x.pro/Blog/133795.shtm
m.5d15x.pro/Blog/953533.shtm
m.5d15x.pro/Blog/335551.shtm
m.5d15x.pro/Blog/111339.shtm
m.5d15x.pro/Blog/597159.shtm
m.5d15x.pro/Blog/111339.shtm
m.5d15x.pro/Blog/911913.shtm
m.5d15x.pro/Blog/117357.shtm
m.5d15x.pro/Blog/559337.shtm
m.5d15x.pro/Blog/799957.shtm
m.5d15x.pro/Blog/975737.shtm
m.5d15x.pro/Blog/111915.shtm
m.5d15x.pro/Blog/935313.shtm
m.5d15x.pro/Blog/395173.shtm
m.5d15x.pro/Blog/137535.shtm
m.5d15x.pro/Blog/595793.shtm
m.5d15x.pro/Blog/995711.shtm
m.5d15x.pro/Blog/171333.shtm
m.5d15x.pro/Blog/919375.shtm
m.5d15x.pro/Blog/359973.shtm
m.5d15x.pro/Blog/771373.shtm
m.5d15x.pro/Blog/737573.shtm
m.5d15x.pro/Blog/771953.shtm
m.5d15x.pro/Blog/597935.shtm
m.5d15x.pro/Blog/531335.shtm
m.5d15x.pro/Blog/957737.shtm
m.5d15x.pro/Blog/571715.shtm
m.5d15x.pro/Blog/113755.shtm
m.5d15x.pro/Blog/153733.shtm
m.5d15x.pro/Blog/133151.shtm
m.5d15x.pro/Blog/113759.shtm
m.5d15x.pro/Blog/591791.shtm
m.5d15x.pro/Blog/955953.shtm
m.5d15x.pro/Blog/157535.shtm
m.5d15x.pro/Blog/395517.shtm
m.5d15x.pro/Blog/397177.shtm
m.5d15x.pro/Blog/533539.shtm
m.5d15x.pro/Blog/173511.shtm
m.5d15x.pro/Blog/535351.shtm
m.5d15x.pro/Blog/955799.shtm
m.5d15x.pro/Blog/137571.shtm
m.5d15x.pro/Blog/913979.shtm
m.5d15x.pro/Blog/593959.shtm
m.5d15x.pro/Blog/173753.shtm
m.5d15x.pro/Blog/555335.shtm
m.5d15x.pro/Blog/175913.shtm
m.5d15x.pro/Blog/939513.shtm
m.5d15x.pro/Blog/977773.shtm
m.5d15x.pro/Blog/137713.shtm
m.5d15x.pro/Blog/111933.shtm
m.5d15x.pro/Blog/759775.shtm
m.5d15x.pro/Blog/175739.shtm
m.5d15x.pro/Blog/513373.shtm
m.5d15x.pro/Blog/737995.shtm
m.5d15x.pro/Blog/937593.shtm
m.5d15x.pro/Blog/771793.shtm
m.5d15x.pro/Blog/797571.shtm
m.5d15x.pro/Blog/777953.shtm
m.5d15x.pro/Blog/913333.shtm
m.5d15x.pro/Blog/153775.shtm
m.5d15x.pro/Blog/771533.shtm
m.5d15x.pro/Blog/931139.shtm
m.5d15x.pro/Blog/395733.shtm
m.5d15x.pro/Blog/179139.shtm
m.5d15x.pro/Blog/533779.shtm
m.5d15x.pro/Blog/311955.shtm
m.5d15x.pro/Blog/131355.shtm
m.5d15x.pro/Blog/939935.shtm
m.5d15x.pro/Blog/199937.shtm
m.5d15x.pro/Blog/591775.shtm
m.5d15x.pro/Blog/313153.shtm
m.5d15x.pro/Blog/719731.shtm
m.5d15x.pro/Blog/133117.shtm
m.5d15x.pro/Blog/751199.shtm
m.5d15x.pro/Blog/197197.shtm
m.5d15x.pro/Blog/371779.shtm
m.5d15x.pro/Blog/795979.shtm
m.5d15x.pro/Blog/599757.shtm
m.5d15x.pro/Blog/997915.shtm
m.5d15x.pro/Blog/331933.shtm
m.5d15x.pro/Blog/397535.shtm
m.5d15x.pro/Blog/313731.shtm
m.5d15x.pro/Blog/395979.shtm
m.5d15x.pro/Blog/955333.shtm
m.5d15x.pro/Blog/197591.shtm
m.5d15x.pro/Blog/799913.shtm
m.5d15x.pro/Blog/335539.shtm
m.5d15x.pro/Blog/373797.shtm
m.5d15x.pro/Blog/999579.shtm
m.5d15x.pro/Blog/159115.shtm
m.5d15x.pro/Blog/319953.shtm
m.5d15x.pro/Blog/957559.shtm
m.5d15x.pro/Blog/971573.shtm
m.5d15x.pro/Blog/913931.shtm
m.5d15x.pro/Blog/775759.shtm
m.5d15x.pro/Blog/919711.shtm
m.5d15x.pro/Blog/911395.shtm
m.5d15x.pro/Blog/317531.shtm
m.5d15x.pro/Blog/759159.shtm
m.5d15x.pro/Blog/357951.shtm
m.5d15x.pro/Blog/555153.shtm
m.5d15x.pro/Blog/779931.shtm
m.5d15x.pro/Blog/793519.shtm
m.5d15x.pro/Blog/791997.shtm
m.5d15x.pro/Blog/597577.shtm
m.5d15x.pro/Blog/917133.shtm
m.5d15x.pro/Blog/753159.shtm
m.5d15x.pro/Blog/759755.shtm
m.5d15x.pro/Blog/131111.shtm
m.5d15x.pro/Blog/731991.shtm
m.5d15x.pro/Blog/953551.shtm
m.5d15x.pro/Blog/153593.shtm
m.5d15x.pro/Blog/513133.shtm
m.5d15x.pro/Blog/135177.shtm
m.5d15x.pro/Blog/553775.shtm
m.5d15x.pro/Blog/579317.shtm
m.5d15x.pro/Blog/535753.shtm
m.5d15x.pro/Blog/399975.shtm
m.5d15x.pro/Blog/591335.shtm
m.5d15x.pro/Blog/557317.shtm
m.5d15x.pro/Blog/793533.shtm
m.5d15x.pro/Blog/515117.shtm
m.5d15x.pro/Blog/355933.shtm
m.5d15x.pro/Blog/159355.shtm
m.5d15x.pro/Blog/959595.shtm
m.5d15x.pro/Blog/391319.shtm
m.5d15x.pro/Blog/737759.shtm
m.5d15x.pro/Blog/571113.shtm
m.5d15x.pro/Blog/573379.shtm
m.5d15x.pro/Blog/915335.shtm
m.5d15x.pro/Blog/171779.shtm
m.5d15x.pro/Blog/539117.shtm
m.5d15x.pro/Blog/191915.shtm
m.5d15x.pro/Blog/939953.shtm
m.5d15x.pro/Blog/315355.shtm
m.5d15x.pro/Blog/511353.shtm
m.5d15x.pro/Blog/115333.shtm
m.5d15x.pro/Blog/531131.shtm
m.5d15x.pro/Blog/773999.shtm
m.5d15x.pro/Blog/193115.shtm
m.5d15x.pro/Blog/179179.shtm
m.5d15x.pro/Blog/159177.shtm
m.5d15x.pro/Blog/575791.shtm
m.5d15x.pro/Blog/331995.shtm
m.5d15x.pro/Blog/373551.shtm
m.5d15x.pro/Blog/111113.shtm
m.5d15x.pro/Blog/373131.shtm
m.5d15x.pro/Blog/597773.shtm
m.5d15x.pro/Blog/319379.shtm
m.5d15x.pro/Blog/315537.shtm
m.5d15x.pro/Blog/331155.shtm
m.5d15x.pro/Blog/997395.shtm
m.5d15x.pro/Blog/371939.shtm
m.5d15x.pro/Blog/577377.shtm
m.5d15x.pro/Blog/551753.shtm
m.5d15x.pro/Blog/353555.shtm
m.5d15x.pro/Blog/111319.shtm
m.5d15x.pro/Blog/735997.shtm
m.5d15x.pro/Blog/335911.shtm
m.5d15x.pro/Blog/951179.shtm
m.5d15x.pro/Blog/973117.shtm
m.5d15x.pro/Blog/593315.shtm
m.5d15x.pro/Blog/739955.shtm
m.5d15x.pro/Blog/391757.shtm
m.5d15x.pro/Blog/771113.shtm
m.5d15x.pro/Blog/571999.shtm
m.5d15x.pro/Blog/991375.shtm
m.5d15x.pro/Blog/719791.shtm
m.5d15x.pro/Blog/593959.shtm
m.5d15x.pro/Blog/193559.shtm
m.5d15x.pro/Blog/711331.shtm
m.5d15x.pro/Blog/995113.shtm
m.5d15x.pro/Blog/335391.shtm
m.5d15x.pro/Blog/717715.shtm
m.5d15x.pro/Blog/557511.shtm
m.5d15x.pro/Blog/173759.shtm
m.5d15x.pro/Blog/515553.shtm
m.5d15x.pro/Blog/977993.shtm
m.5d15x.pro/Blog/537353.shtm
m.5d15x.pro/Blog/713193.shtm
m.5d15x.pro/Blog/577573.shtm
m.5d15x.pro/Blog/315333.shtm
m.5d15x.pro/Blog/535579.shtm
m.5d15x.pro/Blog/333793.shtm
m.5d15x.pro/Blog/537593.shtm
m.5d15x.pro/Blog/593575.shtm
m.5d15x.pro/Blog/193379.shtm
m.5d15x.pro/Blog/917955.shtm
m.5d15x.pro/Blog/559395.shtm
m.5d15x.pro/Blog/991371.shtm
m.5d15x.pro/Blog/715913.shtm
m.5d15x.pro/Blog/711717.shtm
m.5d15x.pro/Blog/935379.shtm
m.5d15x.pro/Blog/791533.shtm
m.5d15x.pro/Blog/577715.shtm
m.5d15x.pro/Blog/975931.shtm
m.5d15x.pro/Blog/131399.shtm
m.x9zjb.pro/Blog/577515.shtm
m.x9zjb.pro/Blog/713935.shtm
m.x9zjb.pro/Blog/773355.shtm
m.x9zjb.pro/Blog/379171.shtm
m.x9zjb.pro/Blog/999373.shtm
m.x9zjb.pro/Blog/355335.shtm
m.x9zjb.pro/Blog/571793.shtm
m.x9zjb.pro/Blog/795397.shtm
m.x9zjb.pro/Blog/959155.shtm
m.x9zjb.pro/Blog/753711.shtm
m.x9zjb.pro/Blog/793511.shtm
m.x9zjb.pro/Blog/555775.shtm
m.x9zjb.pro/Blog/137137.shtm
m.x9zjb.pro/Blog/777591.shtm
m.x9zjb.pro/Blog/917731.shtm
m.x9zjb.pro/Blog/193513.shtm
m.x9zjb.pro/Blog/175957.shtm
m.x9zjb.pro/Blog/797573.shtm
m.x9zjb.pro/Blog/159975.shtm
m.x9zjb.pro/Blog/759159.shtm
m.x9zjb.pro/Blog/795777.shtm
m.x9zjb.pro/Blog/731913.shtm
m.x9zjb.pro/Blog/991117.shtm
m.x9zjb.pro/Blog/779953.shtm
m.x9zjb.pro/Blog/933797.shtm
m.x9zjb.pro/Blog/795139.shtm
m.x9zjb.pro/Blog/595135.shtm
m.x9zjb.pro/Blog/311777.shtm
m.x9zjb.pro/Blog/511593.shtm
m.x9zjb.pro/Blog/711395.shtm
m.x9zjb.pro/Blog/733151.shtm
m.x9zjb.pro/Blog/515113.shtm
m.x9zjb.pro/Blog/977531.shtm
m.x9zjb.pro/Blog/175315.shtm
m.x9zjb.pro/Blog/557995.shtm
m.x9zjb.pro/Blog/319159.shtm
m.x9zjb.pro/Blog/131955.shtm
m.x9zjb.pro/Blog/959911.shtm
m.x9zjb.pro/Blog/955171.shtm
m.x9zjb.pro/Blog/719571.shtm
m.x9zjb.pro/Blog/331137.shtm
m.x9zjb.pro/Blog/911571.shtm
m.x9zjb.pro/Blog/933179.shtm
m.x9zjb.pro/Blog/979133.shtm
m.x9zjb.pro/Blog/579153.shtm
m.x9zjb.pro/Blog/953395.shtm
m.x9zjb.pro/Blog/531555.shtm
m.x9zjb.pro/Blog/111717.shtm
m.x9zjb.pro/Blog/911597.shtm
m.x9zjb.pro/Blog/571591.shtm
m.x9zjb.pro/Blog/953757.shtm
m.x9zjb.pro/Blog/539591.shtm
m.x9zjb.pro/Blog/797973.shtm
m.x9zjb.pro/Blog/915739.shtm
m.x9zjb.pro/Blog/351573.shtm
m.x9zjb.pro/Blog/513971.shtm
m.x9zjb.pro/Blog/197193.shtm
m.x9zjb.pro/Blog/319151.shtm
m.x9zjb.pro/Blog/599193.shtm
m.x9zjb.pro/Blog/959713.shtm
m.x9zjb.pro/Blog/535319.shtm
m.x9zjb.pro/Blog/995973.shtm
m.x9zjb.pro/Blog/731373.shtm
m.x9zjb.pro/Blog/537715.shtm
m.x9zjb.pro/Blog/997379.shtm
m.x9zjb.pro/Blog/179359.shtm
m.x9zjb.pro/Blog/391151.shtm
m.x9zjb.pro/Blog/751531.shtm
m.x9zjb.pro/Blog/373773.shtm
m.x9zjb.pro/Blog/937999.shtm
m.x9zjb.pro/Blog/195771.shtm
m.x9zjb.pro/Blog/971195.shtm
m.x9zjb.pro/Blog/939111.shtm
m.x9zjb.pro/Blog/739779.shtm
m.x9zjb.pro/Blog/197717.shtm
m.x9zjb.pro/Blog/757975.shtm
m.x9zjb.pro/Blog/191139.shtm
m.x9zjb.pro/Blog/377579.shtm
m.x9zjb.pro/Blog/975317.shtm
m.x9zjb.pro/Blog/975771.shtm
m.x9zjb.pro/Blog/333379.shtm
m.x9zjb.pro/Blog/513771.shtm
m.x9zjb.pro/Blog/733935.shtm
m.x9zjb.pro/Blog/571111.shtm
m.x9zjb.pro/Blog/975511.shtm
m.x9zjb.pro/Blog/797555.shtm
m.x9zjb.pro/Blog/111339.shtm
m.x9zjb.pro/Blog/371375.shtm
m.x9zjb.pro/Blog/739335.shtm
m.x9zjb.pro/Blog/577151.shtm
m.x9zjb.pro/Blog/335591.shtm
m.x9zjb.pro/Blog/135533.shtm
m.x9zjb.pro/Blog/155757.shtm
m.x9zjb.pro/Blog/375555.shtm
m.x9zjb.pro/Blog/773575.shtm
m.x9zjb.pro/Blog/135753.shtm
m.x9zjb.pro/Blog/511717.shtm
m.x9zjb.pro/Blog/199551.shtm
m.x9zjb.pro/Blog/399579.shtm
m.x9zjb.pro/Blog/535155.shtm
m.x9zjb.pro/Blog/771791.shtm
m.x9zjb.pro/Blog/391377.shtm
m.x9zjb.pro/Blog/595119.shtm
m.x9zjb.pro/Blog/199595.shtm
m.x9zjb.pro/Blog/951539.shtm
m.x9zjb.pro/Blog/595595.shtm
m.x9zjb.pro/Blog/953753.shtm
m.x9zjb.pro/Blog/977997.shtm
m.x9zjb.pro/Blog/711139.shtm
m.x9zjb.pro/Blog/533393.shtm
m.x9zjb.pro/Blog/519111.shtm
m.x9zjb.pro/Blog/739151.shtm
m.x9zjb.pro/Blog/937557.shtm
m.x9zjb.pro/Blog/177359.shtm
m.x9zjb.pro/Blog/337959.shtm
m.x9zjb.pro/Blog/951315.shtm
m.x9zjb.pro/Blog/313179.shtm
m.x9zjb.pro/Blog/797731.shtm
m.x9zjb.pro/Blog/955731.shtm
m.x9zjb.pro/Blog/173355.shtm
m.x9zjb.pro/Blog/375939.shtm
m.x9zjb.pro/Blog/131971.shtm
m.x9zjb.pro/Blog/559137.shtm
m.x9zjb.pro/Blog/955399.shtm
m.x9zjb.pro/Blog/571137.shtm
m.x9zjb.pro/Blog/555155.shtm
m.x9zjb.pro/Blog/919997.shtm
m.x9zjb.pro/Blog/791319.shtm
m.x9zjb.pro/Blog/931115.shtm
m.x9zjb.pro/Blog/517377.shtm
m.x9zjb.pro/Blog/331319.shtm
m.x9zjb.pro/Blog/175119.shtm
m.x9zjb.pro/Blog/575919.shtm
m.x9zjb.pro/Blog/573591.shtm
m.x9zjb.pro/Blog/377377.shtm
m.x9zjb.pro/Blog/333599.shtm
m.x9zjb.pro/Blog/191793.shtm
m.x9zjb.pro/Blog/771755.shtm
m.x9zjb.pro/Blog/951991.shtm
m.x9zjb.pro/Blog/577937.shtm
m.x9zjb.pro/Blog/997311.shtm
m.x9zjb.pro/Blog/795951.shtm
m.x9zjb.pro/Blog/195111.shtm
m.x9zjb.pro/Blog/351193.shtm
m.x9zjb.pro/Blog/933319.shtm
m.x9zjb.pro/Blog/157955.shtm
m.x9zjb.pro/Blog/977139.shtm
m.x9zjb.pro/Blog/753133.shtm
m.x9zjb.pro/Blog/399393.shtm
m.x9zjb.pro/Blog/119997.shtm
m.x9zjb.pro/Blog/137591.shtm
m.x9zjb.pro/Blog/173351.shtm
m.x9zjb.pro/Blog/599533.shtm
m.x9zjb.pro/Blog/511397.shtm
m.x9zjb.pro/Blog/119517.shtm
m.x9zjb.pro/Blog/993917.shtm
m.x9zjb.pro/Blog/373557.shtm
m.x9zjb.pro/Blog/379775.shtm
m.x9zjb.pro/Blog/573153.shtm
m.x9zjb.pro/Blog/777353.shtm
m.x9zjb.pro/Blog/997353.shtm
m.x9zjb.pro/Blog/575571.shtm
m.x9zjb.pro/Blog/337179.shtm
m.x9zjb.pro/Blog/717191.shtm
m.x9zjb.pro/Blog/119511.shtm
m.x9zjb.pro/Blog/939399.shtm
m.x9zjb.pro/Blog/939195.shtm
m.x9zjb.pro/Blog/951177.shtm
m.x9zjb.pro/Blog/315757.shtm
m.x9zjb.pro/Blog/937597.shtm
m.x9zjb.pro/Blog/531995.shtm
m.x9zjb.pro/Blog/175111.shtm
m.x9zjb.pro/Blog/913319.shtm
m.x9zjb.pro/Blog/711953.shtm
m.x9zjb.pro/Blog/119995.shtm
m.x9zjb.pro/Blog/717999.shtm
m.x9zjb.pro/Blog/779513.shtm
m.x9zjb.pro/Blog/135957.shtm
m.x9zjb.pro/Blog/599179.shtm
m.x9zjb.pro/Blog/579113.shtm
m.x9zjb.pro/Blog/557159.shtm
m.x9zjb.pro/Blog/199111.shtm
m.x9zjb.pro/Blog/977797.shtm
m.x9zjb.pro/Blog/959733.shtm
m.x9zjb.pro/Blog/195533.shtm
m.x9zjb.pro/Blog/395715.shtm
m.x9zjb.pro/Blog/793137.shtm
m.x9zjb.pro/Blog/353399.shtm
m.x9zjb.pro/Blog/153913.shtm
m.x9zjb.pro/Blog/553371.shtm
m.x9zjb.pro/Blog/993579.shtm
m.x9zjb.pro/Blog/955177.shtm
m.x9zjb.pro/Blog/757513.shtm
m.x9zjb.pro/Blog/553775.shtm
m.x9zjb.pro/Blog/557933.shtm
m.x9zjb.pro/Blog/771757.shtm
m.x9zjb.pro/Blog/515779.shtm
m.x9zjb.pro/Blog/797757.shtm
m.x9zjb.pro/Blog/199119.shtm
m.x9zjb.pro/Blog/533131.shtm
m.x9zjb.pro/Blog/397117.shtm
m.x9zjb.pro/Blog/753713.shtm
m.x9zjb.pro/Blog/775717.shtm
m.x9zjb.pro/Blog/735973.shtm
m.x9zjb.pro/Blog/999953.shtm
m.x9zjb.pro/Blog/571377.shtm
m.x9zjb.pro/Blog/959377.shtm
m.x9zjb.pro/Blog/197119.shtm
m.x9zjb.pro/Blog/911319.shtm
m.x9zjb.pro/Blog/999397.shtm
m.x9zjb.pro/Blog/975155.shtm
m.x9zjb.pro/Blog/197317.shtm
m.x9zjb.pro/Blog/911131.shtm
m.x9zjb.pro/Blog/777115.shtm
m.x9zjb.pro/Blog/151377.shtm
m.x9zjb.pro/Blog/991371.shtm
m.x9zjb.pro/Blog/537971.shtm
m.x9zjb.pro/Blog/159113.shtm
m.x9zjb.pro/Blog/131597.shtm
m.x9zjb.pro/Blog/175917.shtm
m.x9zjb.pro/Blog/171717.shtm
m.x9zjb.pro/Blog/157797.shtm
m.x9zjb.pro/Blog/975773.shtm
m.x9zjb.pro/Blog/979511.shtm
m.x9zjb.pro/Blog/991397.shtm
m.x9zjb.pro/Blog/157177.shtm
m.x9zjb.pro/Blog/971195.shtm
m.x9zjb.pro/Blog/515559.shtm
m.x9zjb.pro/Blog/511155.shtm
m.x9zjb.pro/Blog/137773.shtm
m.x9zjb.pro/Blog/955937.shtm
m.x9zjb.pro/Blog/717919.shtm
m.x9zjb.pro/Blog/915359.shtm
m.x9zjb.pro/Blog/957919.shtm
m.x9zjb.pro/Blog/513571.shtm
m.x9zjb.pro/Blog/515917.shtm
m.x9zjb.pro/Blog/373997.shtm
m.x9zjb.pro/Blog/997539.shtm
m.x9zjb.pro/Blog/797159.shtm
m.x9zjb.pro/Blog/351937.shtm
m.x9zjb.pro/Blog/177993.shtm
m.x9zjb.pro/Blog/391357.shtm
m.x9zjb.pro/Blog/115717.shtm
m.x9zjb.pro/Blog/155313.shtm
m.x9zjb.pro/Blog/591755.shtm
m.x9zjb.pro/Blog/735719.shtm
m.x9zjb.pro/Blog/597313.shtm
m.x9zjb.pro/Blog/979379.shtm
m.x9zjb.pro/Blog/335115.shtm
m.x9zjb.pro/Blog/131551.shtm
m.x9zjb.pro/Blog/133757.shtm
m.x9zjb.pro/Blog/175753.shtm
m.x9zjb.pro/Blog/597177.shtm
m.x9zjb.pro/Blog/377395.shtm
m.x9zjb.pro/Blog/991971.shtm
m.x9zjb.pro/Blog/155151.shtm
m.x9zjb.pro/Blog/793797.shtm
m.x9zjb.pro/Blog/331951.shtm
m.x9zjb.pro/Blog/393711.shtm
m.x9zjb.pro/Blog/511775.shtm
m.x9zjb.pro/Blog/913793.shtm
m.x9zjb.pro/Blog/555393.shtm
m.x9zjb.pro/Blog/353557.shtm
m.x9zjb.pro/Blog/579175.shtm
m.x9zjb.pro/Blog/953753.shtm
m.x9zjb.pro/Blog/353155.shtm
m.x9zjb.pro/Blog/557977.shtm
m.x9zjb.pro/Blog/977311.shtm
m.x9zjb.pro/Blog/775931.shtm
m.x9zjb.pro/Blog/157199.shtm
m.x9zjb.pro/Blog/951577.shtm
m.x9zjb.pro/Blog/393597.shtm
m.x9zjb.pro/Blog/919991.shtm
m.x9zjb.pro/Blog/159371.shtm
m.x9zjb.pro/Blog/357579.shtm
m.x9zjb.pro/Blog/777913.shtm
m.x9zjb.pro/Blog/991977.shtm
m.x9zjb.pro/Blog/599331.shtm
m.x9zjb.pro/Blog/713551.shtm
m.x9zjb.pro/Blog/315317.shtm
m.x9zjb.pro/Blog/353559.shtm
m.x9zjb.pro/Blog/199519.shtm
m.x9zjb.pro/Blog/115333.shtm
m.x9zjb.pro/Blog/513157.shtm
m.x9zjb.pro/Blog/117399.shtm
m.x9zjb.pro/Blog/775173.shtm
m.x9zjb.pro/Blog/337375.shtm
m.x9zjb.pro/Blog/713513.shtm
m.x9zjb.pro/Blog/553379.shtm
m.x9zjb.pro/Blog/339939.shtm
m.x9zjb.pro/Blog/399733.shtm
m.x9zjb.pro/Blog/513771.shtm
m.x9zjb.pro/Blog/113911.shtm
m.x9zjb.pro/Blog/911151.shtm
m.x9zjb.pro/Blog/711917.shtm
m.x9zjb.pro/Blog/595571.shtm
m.x9zjb.pro/Blog/753379.shtm
m.x9zjb.pro/Blog/759199.shtm
m.x9zjb.pro/Blog/719193.shtm
m.x9zjb.pro/Blog/715391.shtm
m.x9zjb.pro/Blog/795737.shtm
m.x9zjb.pro/Blog/117775.shtm
m.x9zjb.pro/Blog/753317.shtm
m.x9zjb.pro/Blog/773999.shtm
m.x9zjb.pro/Blog/553717.shtm
m.x9zjb.pro/Blog/933777.shtm
m.x9zjb.pro/Blog/517735.shtm
m.x9zjb.pro/Blog/515537.shtm
m.x9zjb.pro/Blog/335999.shtm
m.x9zjb.pro/Blog/919975.shtm
m.x9zjb.pro/Blog/553311.shtm
m.x9zjb.pro/Blog/537553.shtm
m.x9zjb.pro/Blog/991159.shtm
m.x9zjb.pro/Blog/537955.shtm
m.x9zjb.pro/Blog/359557.shtm
m.x9zjb.pro/Blog/333991.shtm
m.x9zjb.pro/Blog/975153.shtm
m.x9zjb.pro/Blog/975171.shtm
m.x9zjb.pro/Blog/977511.shtm
m.x9zjb.pro/Blog/759139.shtm
m.x9zjb.pro/Blog/739397.shtm
m.x9zjb.pro/Blog/739773.shtm
m.x9zjb.pro/Blog/517555.shtm
m.x9zjb.pro/Blog/993515.shtm
m.x9zjb.pro/Blog/157955.shtm
m.x9zjb.pro/Blog/171977.shtm
m.x9zjb.pro/Blog/753533.shtm
m.x9zjb.pro/Blog/931593.shtm
m.x9zjb.pro/Blog/739133.shtm
m.x9zjb.pro/Blog/359159.shtm
m.x9zjb.pro/Blog/593533.shtm
m.x9zjb.pro/Blog/531199.shtm
m.x9zjb.pro/Blog/991779.shtm
m.x9zjb.pro/Blog/173315.shtm
m.x9zjb.pro/Blog/515117.shtm
m.x9zjb.pro/Blog/399555.shtm
m.x9zjb.pro/Blog/375959.shtm
m.x9zjb.pro/Blog/193775.shtm
m.x9zjb.pro/Blog/713531.shtm
m.x9zjb.pro/Blog/533379.shtm
m.x9zjb.pro/Blog/591159.shtm
m.x9zjb.pro/Blog/157373.shtm
m.x9zjb.pro/Blog/735713.shtm
m.x9zjb.pro/Blog/319735.shtm
m.x9zjb.pro/Blog/351113.shtm
m.x9zjb.pro/Blog/311519.shtm
m.x9zjb.pro/Blog/175597.shtm
m.x9zjb.pro/Blog/351593.shtm
m.x9zjb.pro/Blog/977317.shtm
m.x9zjb.pro/Blog/913137.shtm
m.x9zjb.pro/Blog/733131.shtm
m.x9zjb.pro/Blog/933735.shtm
m.x9zjb.pro/Blog/739339.shtm
m.x9zjb.pro/Blog/917519.shtm
m.x9zjb.pro/Blog/517311.shtm
m.x9zjb.pro/Blog/199397.shtm
m.x9zjb.pro/Blog/935351.shtm
m.x9zjb.pro/Blog/379919.shtm
m.x9zjb.pro/Blog/159777.shtm
m.x9zjb.pro/Blog/737791.shtm
m.x9zjb.pro/Blog/571597.shtm
m.x9zjb.pro/Blog/395553.shtm
m.x9zjb.pro/Blog/571353.shtm
m.x9zjb.pro/Blog/115173.shtm
m.x9zjb.pro/Blog/315339.shtm
m.x9zjb.pro/Blog/733155.shtm
m.x9zjb.pro/Blog/913955.shtm
m.x9zjb.pro/Blog/393577.shtm
m.x9zjb.pro/Blog/393331.shtm
m.x9zjb.pro/Blog/579939.shtm
m.x9zjb.pro/Blog/175333.shtm
m.x9zjb.pro/Blog/979333.shtm
m.x9zjb.pro/Blog/113177.shtm
m.x9zjb.pro/Blog/995753.shtm
m.x9zjb.pro/Blog/331375.shtm
m.x9zjb.pro/Blog/773177.shtm
m.x9zjb.pro/Blog/717391.shtm
m.x9zjb.pro/Blog/973939.shtm
m.x9zjb.pro/Blog/771953.shtm
m.x9zjb.pro/Blog/939531.shtm
m.x9zjb.pro/Blog/593575.shtm
m.x9zjb.pro/Blog/333959.shtm
m.x9zjb.pro/Blog/775957.shtm
m.x9zjb.pro/Blog/537379.shtm
m.x9zjb.pro/Blog/177757.shtm
m.x9zjb.pro/Blog/339115.shtm
m.x9zjb.pro/Blog/393531.shtm
m.x9zjb.pro/Blog/177173.shtm
m.x9zjb.pro/Blog/313337.shtm
m.x9zjb.pro/Blog/995577.shtm

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 16:50:33

颠覆认知:重新定义打字体验的开源神器 Tickeys 深度评测

颠覆认知&#xff1a;重新定义打字体验的开源神器 Tickeys 深度评测 【免费下载链接】Tickeys Instant audio feedback for typing. macOS version. (Rust) 项目地址: https://gitcode.com/gh_mirrors/ti/Tickeys 问题&#xff1a;机械键盘的噪音与薄膜键盘的平淡&…

作者头像 李华
网站建设 2026/4/23 17:49:39

fft npainting lama处理时间过长?分辨率优化提速方案

FFT NPainting LaMa处理时间过长&#xff1f;分辨率优化提速方案 1. 问题背景&#xff1a;为什么修复一张图要等半分钟&#xff1f; 你是不是也遇到过这种情况&#xff1a;上传一张高清截图&#xff0c;用画笔圈出水印&#xff0c;点击“ 开始修复”&#xff0c;然后盯着进度…

作者头像 李华
网站建设 2026/4/17 19:57:01

小白也能用!GPEN人像修复镜像,批量处理模糊照片超简单

小白也能用&#xff01;GPEN人像修复镜像&#xff0c;批量处理模糊照片超简单 你是不是也遇到过这些情况&#xff1a; 翻出十年前的老照片&#xff0c;人脸糊成一团&#xff0c;连眼睛都看不清&#xff1b; 朋友发来一张手机随手拍的合影&#xff0c;光线差、对焦虚&#xff0…

作者头像 李华
网站建设 2026/4/23 12:42:00

fft npainting lama如何精准移除物体?标注技巧完整指南

FFT NPainting LaMa如何精准移除物体&#xff1f;标注技巧完整指南 1. 为什么精准标注决定修复成败&#xff1f; 很多人用过图像修复工具后发现&#xff1a;同样的模型&#xff0c;别人修得自然无痕&#xff0c;自己却留下明显拼接痕迹。问题往往不出在模型本身&#xff0c;而…

作者头像 李华
网站建设 2026/4/24 3:14:03

CANFD与CAN通信协议对比:帧结构完整指南

以下是对您提供的博文《CANFD与CAN通信协议对比:帧结构完整指南》的 深度润色与专业优化版本 。本次改写严格遵循您的全部要求: ✅ 彻底去除AI痕迹,语言自然、老练、有技术温度,像一位深耕车载网络十年的嵌入式系统架构师在和你面对面聊设计; ✅ 所有章节标题全部重构…

作者头像 李华
网站建设 2026/4/18 7:47:32

ARM寄存器组织详解:零基础图解说明

以下是对您提供的博文《ARM寄存器组织详解:零基础图解说明(技术深度分析)》的 全面润色与重构版本 。本次优化严格遵循您的全部要求: ✅ 彻底去除AI痕迹,代之以资深嵌入式工程师第一人称视角的真实叙述口吻 ✅ 摒弃所有模板化标题(如“引言”“总结”“核心特性”),…

作者头像 李华