首页 > 编程语言 >c++ 学习

c++ 学习

时间:2023-12-15 17:15:43浏览次数:28  
标签:std set 自定义 c++ unordered 学习 用于 ptr

 

c++ 中常用的class

在C++中,有一些常用的标准库类和一些常见的自定义类,它们提供了各种功能,从容器和算法到文件处理和输入/输出。以下是一些在C++中常用的类:

### 标准库类:

1. **std::string:**
- 用于处理字符串的类,提供了许多字符串操作的方法。

2. **std::vector:**
- 动态数组,提供了动态大小的数组,支持快速的随机访问和动态调整大小。

3. **std::list:**
- 双向链表,提供了在两端进行快速插入和删除操作的能力。

4. **std::map 和 std::unordered_map:**
- 关联容器,用于实现键-值对的映射关系。`std::map` 是有序的,而 `std::unordered_map` 是无序的。

5. **std::set 和 std::unordered_set:**
- 关联容器,用于存储唯一的元素集合。`std::set` 是有序的,而 `std::unordered_set` 是无序的。

6. **std::ifstream 和 std::ofstream:**
- 用于文件输入和输出的类。`std::ifstream` 用于读取文件,`std::ofstream` 用于写入文件。

7. **std::stringstream:**
- 用于在内存中处理字符串的类,可以方便地进行字符串的输入和输出。

8. **std::thread:**
- 用于多线程编程的类,可以创建和管理线程。

9. **std::mutex:**
- 互斥量类,用于在多线程环境中保护共享资源。

10. **std::unique_ptr 和 std::shared_ptr:**
- 智能指针类,用于管理动态分配的内存。`std::unique_ptr` 独占所有权,而 `std::shared_ptr` 支持共享所有权。

### 自定义类:

1. **类模板 (Class Templates):**
- 自定义泛型类,例如可以创建通用的容器类。

2. **异常类 (Exception Classes):**
- 用于处理异常情况的自定义异常类,派生自 `std::exception`。

3. **网络类 (Network Classes):**
- 用于网络编程的自定义类,例如套接字类。

4. **图形用户界面 (GUI) 类:**
- 用于创建图形用户界面的自定义类,例如窗口、按钮、文本框等。

5. **数据库访问类 (Database Access Classes):**
- 用于与数据库交互的自定义类,例如数据库连接、查询等。

这只是一个概览,实际上在C++中有无数可能的自定义类,取决于应用程序的需求。根据具体情况,程序员可以创建自己的类来满足特定的功能和设计要求。

 

 

参考:

 

标签:std,set,自定义,c++,unordered,学习,用于,ptr
From: https://www.cnblogs.com/rebrobot/p/17903737.html

相关文章

  • 《Java编程思想第四版》学习笔记47--关于handleEvent
    (4)增加可以被handleEvent()方法测试事件的组件到练习3中。过载handleEvent()并在文字字段中为每个组件显示特定的消息。                                                ......
  • c++11 乱模版
    std::is_same,std::enable_if,std::is_integraltemplate<typenameT>boolisZero(Tv){if(std::is_same<T,float>::value){return(fabs(v)<FLT_EPSILON);}elseif(std::is_same<T,double>::value){......
  • windows C++
    https://en.cppreference.com/w/cpp/string/basic_stringstd::basic_string C++ Stringslibrary std::basic_string Definedinheader <string>  template<   class CharT,   class Traits = std::char_traits<CharT>,   class......
  • C++ Qt开发:DateTime日期时间组件
    Qt是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍QDateTime日期与时间组件的常用方法及灵活运用。在Qt中,日期和时间的处理通常使用QDateTime类。......
  • windows c++ socket
    socket用winsocket时,send(),recv()过程中有时由于网络状况等原因,收发不能预期进行,可以设置收发时限:intnNetTimeout=1000;//1秒//发送时限setsockopt(socket,SOL_SOCKET,SO_SNDTIMEO,(char*)&nNetTimeout,sizeof(int));//接收时限setsockopt(socket,SOL_SOCKET,......
  • 机器学习的里程碑:从基础理论到大语言模型的进步
     在人工智能的迅猛发展中,大语言模型和传统机器学习是不同发展阶段下的产物。大语言模型,如广为人知的GPT系列和BERT,主要依赖于复杂的神经网络结构,它们能够处理和生成人类语言,为自然语言处理带来了革命性的变化。这些模型的发展标志着从简单的任务特定模型向更通用、更灵活的解决......
  • 鸢尾花yuan 训练学习 - xedu
            #coding:utf-8fromMMEduimportMMDetectionasdetdefgenerated_train():model=det(backbone='Yolov3')model.num_classes=3model.load_dataset(path=r'D:\XEdu\datasets\mmedu_det\hand_gray')m......
  • C++基础 -7- 引用
    ———————引用———————引用就是数据本身不占用空间 ......
  • Power BI - 5分钟学习增加索引列
    每天5分钟,今天介绍PowerBI增加索引列。什么是增加索引列?增加索引列就是向表中添加一个具有显式位置值的新列,一般从0或者从1开始。举例:首先,导入一张【Sales】样例表(Excel数据源导入请参考每天5分钟第一天)。操作步骤:1,【Home】->【Transformdata】->【Transformdata】;......
  • 12 15学习内容
    今天做软件需求分析课堂测试十一 绘制系统工作上下范围图:前面的一些内容都是概括问题啥的,没啥用。主要就是看用户期望那部分:大体可以分为系统外部(外包人员,发包人员,接包人员与系统的联系)和系统分内之事。系统工作上下范围图: 绘制系统业务流程图: 然后文档明显没有给出实......