- 博客(7)
- 资源 (12)
- 收藏
- 关注
原创 使用 std::move 和右值引用
std::move和右值引用通过启用移动语义,可以在不进行深拷贝的情况下高效地转移资源。这对于避免不必要的内存分配和复制操作,特别是在操作大型对象和容器时,具有显著的性能提升。通过正确使用std::move,可以在许多场景中显著减少性能损耗。
2024-12-31 14:42:42
637
原创 C++重载->运算符
为了这样做,它使用了 `const_cast` 去掉 `const` 限制,并调用非 `const` 版本的 `operator->()`。- `const_cast(*this)` 将 `*this` 转换为非 `const` 类型,以便调用非 `const` 版本的 `operator->()`。- 使用 `const_cast` 将 `*this` 转换为非 `const`,然后委托给非 `const` 重载版本。这两个 `->` 运算符的重载写法是**正确的**,没有问题。
2024-11-18 10:01:18
1603
原创 C++禁用拷贝构造和赋值操作符的作用、语法解析、使用场景和示例
在 C++ 编程中,有时我们希望**禁止对象的拷贝构造和赋值操作**,以避免拷贝操作带来的不必要的性能开销、数据安全问题或者不正确的行为。为了实现这一目的,我们可以禁用类的**拷贝构造函数**和**赋值操作符**。3. **不可复制对象**:有些对象在语义上不应该被复制,比如 `std::unique_ptr` 或互斥锁(`std::mutex`)。**注意**:这种方法虽然可以有效禁止拷贝,但在 C++11 之后已不再推荐使用。2. **单例模式**:为了确保只有一个实例,需要防止拷贝和赋值。
2024-11-17 11:25:05
266
原创 svn:externals外部链接相关操作,查看、增加和删除外部链接
在 SVN 中,`svn:externals` 属性用于添加外部链接,使指定目录可以引用另一个 SVN 仓库中的目录或文件。- 如果该目录有外部链接,命令会返回 `svn:externals` 属性的值(包括外部链接的路径信息)。- 如果项目的多个子目录中也有外部链接,需要进入每个有 `svn:externals` 属性的子目录,重复上述步骤删除该属性。- 在资源管理器中,右键点击要设置外部链接的目录,选择 **TortoiseSVN** > **Properties**。
2024-11-02 11:10:12
2381
原创 svn status命令打印结果解析
`A + src/new_feature.cpp`:`src/new_feature.cpp` 文件被添加,并且带有“+”标记表示是文件拷贝或移动的结果。- `D src/old_feature.cpp`:`src/old_feature.cpp` 文件被删除,但还未提交删除操作。- **X (External)**:文件或目录是一个外部引用(通过 `svn:externals` 引入)。- **R (Replaced)**:文件被替换,即删除后再添加了同名的文件。
2024-11-02 11:03:52
550
原创 svn递归删除目录下所有的非版本控制文件
I]'` 只保留以 `?` 或 `I` 开头的行,表示未受控制或被忽略的文件。3. 在弹出的窗口中,点击 **显示未版本控制的文件 (Show unversioned files)**。- `svn status --no-ignore` 列出所有未受版本控制的文件和被忽略的文件。> **注意**:此命令会永久删除未版本控制的文件和文件夹。4. 勾选所有未版本控制的文件,然后右键选择 **删除 (Delete)**。1. **导航到 SVN 项目的根目录**。1. **打开项目的根目录**。
2024-11-02 11:01:52
295
原创 Docker原理和应用简介
使用Docker构建一致的测试和生产环境,确保代码在开发、测试和生产环境中运行一致,减少“它在我机器上能跑”的问题。- **层**:Docker镜像由多层文件系统组成,每一层都代表镜像的一个修改点,层的合并形成了最终的镜像。- **Cgroups(控制组)**:限制、计量和隔离容器使用的资源(如CPU、内存、网络带宽等)。- **镜像**:容器的只读模板,包含了应用程序和其依赖的所有内容。- **Namespaces**:为容器提供隔离的环境,使其拥有独立的文件系统、网络、进程等。
2024-07-24 14:26:10
246
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人