• 2024-10-12你真的懂C++吗?
    看看下面的代码,你真的懂C++吗?#defineN2#defineMN+1#defineNUM(M+1)*M/2intmain(){std::cout<<NUM;return0;}//输出结果为8,展开过程如下//(M+1)*M/2//(N+1+1)*N+1/2//(2+1+1)*2+1/2//4*2+0//8c
  • 2024-09-25STL之手撕vector
    前言面试的时候遇到了,是从来没想过会出问题的手撕。竟然在面试环节下出了不少纰漏。要点构造函数:默认构造、拷贝构造、赋值运算符重载、移动构造函数、析构函数push_back/pop_back代码#include<iostream>usingnamespacestd;#defineDEFAULT_CAP(200)class
  • 2024-05-09传统C++回顾
    主要参考菜鸟教程,用于回忆当时没有好好学习的C++98Vector的学习#include<iostream>#include<vector>usingnamespacestd;intmain(){vector<int>myVector;myVector.push_back(3);myVector.push_back(7);myVector.push_back(11);myVector.push_back(5
  • 2024-05-08C++容器
    C++容器bitset构造函数//1.默认构造函数:0bitset<10>a; //a:0000000000//2.用一个数值初始化//(1)当用一个数值去构造的时候,其实就是将数值在内存中的存储方式显示出来。(数值在内存中是以补码形式存储的)//(2)若bitset的位数n小于数值的位数,只取数值(小端的)前n位
  • 2024-04-09对类中std::vector私有成员进行更改
    本文是对 C++关于vector做返回值的引用细节 的延申问题一:使用vector作为函数返回值时,加&与不加&有什么区别在C++中,当函数返回一个vector时,可以选择在返回类型中使用引用(&)或者不使用引用的方式。这两种方式有一些区别,主要涉及到拷贝构造和性能。1.使用引用(&):std::vector<i
  • 2024-03-29类模板
    1.类模板的基本范例和模板参数的推断基本范例:类模板,也是生产类的工具,通过给定的模板参数,生成具体的类。类模板的声明和实现一般都放在同一个头文件中,因为实例化的时候必须有类模板的全部信息。template<typenameT>//T表示myvector这个容器所存储的元素类型classmyvector
  • 2024-03-03[详解-vector] C++必知必会 vector常用各种操作解析
    原文转载自知乎:https://zhuanlan.zhihu.com/p/648650828vector是C++标准库中的一个动态数组容器,它可以自动管理内存大小,可以在运行时根据需要动态增长或缩小。它是一个非常常用且强大的容器,用于存储一系列元素。下面详细介绍vector的使用方法,并提供相应的代码案例。1.包含
  • 2024-02-23chapter5-线性数据结构
    1.向量向量(vector)是可以改变其大小的线性序列容器。像数组一样,向量使用连续的空间存储元素,这表明向量也可以像数组一般通过其下标来访问其元素。但与数组不同的是,向量的大小可以动态变化。向量在内部使用动态数组的方式来存储元素,无需关心实现细节。(平均意义下,向量插入元素的时
  • 2024-01-21C++ ——vector数组笔记
     vector是C++标准库中的一个动态数组容器(SequenceContainer),它可以自动管理内存大小,可以在运行时根据需要动态增长或缩小。它是一个非常常用且强大的容器,用于存储一系列元素。可以简单的认为,vector是一个能够放任意类型的动态数组。下面详细介绍 vector 的使用方法
  • 2024-01-21【Cpp】语言基础
    Cpp学习笔记,内容来自卡特网语言基础课和OIWIKI预处理命令预处理命令是预处理器所接受的命令,用于对代码进行初步的文本替换。#include#include<cstdio>#include<iostream>intmain(){return0;}#include是一个预处理命令,<>里的文件称为头文件。#include<i
  • 2023-12-14C++(resize())
    在C++中,resize()是一种用于调整容器大小的成员函数,它通常用于std::vector、std::string等标准库容器。这个函数允许你改变容器中元素的数量,可以增加或减少容器的大小。对于std::vector:#include<vector>#include<iostream>intmain(){std::vector<int>myVector
  • 2023-12-14C++(push_back)
    在C++中,push_back是用于在容器的末尾添加一个元素的成员函数。这个函数通常用于向动态数组(比如std::vector)或类似的容器中添加新的元素。语法:voidpush_back(constT&value);value:要添加到容器末尾的元素。示例:#include<iostream>#include<vector>intmain(){
  • 2023-11-19C++ merge()函数
    merge()函数用于将2个有序序列合并为1个有序序列,前提是这2个有序序列的排序规则相同(要么都是升序,要么都是降序)。并且最终借助该函数获得的新有序序列,其排序规则也和这2个有序序列相同。merge()函数支持自定义规则排序,merge()有两种语法格式//以默认的升序排序作为排
  • 2023-08-29vector 动态添加
    #include<iostream>#include<vector>#include<string>#include<algorithm>intmain(){std::vector<std::string>myVector;//创建一个空的vector<string>std::stringinput;std::cout<<"请输入字符串(输入exi
  • 2023-07-20c++ day 13
    今天来认识c++里面的迭代器C++迭代器(Iterator)是一种用于遍历容器(如数组、向量、链表等)中元素的抽象概念。它允许你通过简单的接口在容器中移动,并访问容器中的元素,而无需了解底层数据结构的细节。迭代器提供了一种统一的方式来访问不同类型容器的元素,使得代码更加灵活和可复用。
  • 2023-05-09C++如何实现容器的Copy/Move/Swap方法
    C++如何实现容器的Copy/Move/Swap方法1、引言目前网上有很多关于如何编写C++容器的教程,比如各种“手写STL”之类的文章和视频,但是这些教程中的容器一般都不包括allocator,比如:template<typenameT>classMyVector{...};然而我们知道标准库的容器都是有一个Allocator的模
  • 2023-03-23C++ 标准库 sort() / stable_sort() / partial_sort() 对比
    C++STL标准库中提供了多个用于排序的Sort函数,常用的包括有sort()/stable_sort()/partial_sort(),具体的函数用法如下表所示:函数用法std::sort(first,last)
  • 2023-03-21vector
    1、emplace1)emplace(pos,args):在某个迭代器位置插入(构建)一个新对象std::vector<int>myvector={10,20,30};//->10,100,20,30autoit=myvector.emplace(myvec
  • 2022-12-29C++11:for循环(基于范围的循环)
    1.C++98/03标准的for循环在C++98/03标准中,如果要用for循环语句遍历一个数组或者容器,只能套用如下结构:for(表达式1;表达式2;表达式3){//循环体}例如,下面
  • 2022-12-06<五>模板的完全特例化和非完全特例化
    模板作为C++泛型编程的基础十分重要,其使得一份代码能用于处理多种数据类型。而有些时候,我们会希望对一些特定的数据类型执行不同的代码,这时就需要使用模板特例化(template
  • 2022-11-22<四>MyVector中加入迭代器功能
    我们之前有<C++模板编程模块>中的第<四>节理解空间配置器allocator优化STL中的Vector我将在此基础上加入迭代器功能代码Iterator为什么可以遍历所有的容器的方式都一