c++学习笔记
文章平均质量分 52
yitahutu79
小李今天打代码了吗?
展开
-
iota()函数
定义在 numeric 头文件中的 iota() 函数模板会用连续的 T 类型值填充序列。前两个参数是定义序列的正向迭代器,第三个参数是初始的 T 值。第三个指定的值会被保存到序列的第一个元素中。保存在第一个元素后的值是通过对前面的值运用自增运算符得到的。当然,这意味着 T 类型必须支持 operator++()。iota 函数是一个计算机语言中的函数,用于产生连续的值。该函数得名自 APL 语言,其中用来产生从 1 开始的连续数值。该函数位于头文件#include 中。原创 2022-10-08 16:14:30 · 747 阅读 · 0 评论 -
for(auto &c:s)与for(auto c:s)
在 C++11 之前的版本(C++98 和 C++ 03)中,定义变量或者声明变量之前都必须指明它的类型,比如 int、char。等,程序员在定义变量时可以不指明具体的类型,而是让编译器(或者解释器)自己去推导,这就让代码的编写更加方便。C++11 使用 auto 关键字来支持自动类型推导。但是在一些比较灵活的语言中,比如 C#、JavaScript、PHP、Python。a在每次循环中,依次等于array[i]。上面两个例程的结果是相同的。可见不用&引用,不能使s中的字符改变成’t’。原创 2022-10-05 15:00:52 · 309 阅读 · 0 评论 -
stoi()函数
/将字符串 str 从 0 位置开始到末尾的 2 进制转换为十进制。stoi(字符串,起始位置,n进制),将 n 进制的字符串转化为十进制。将 n 进制的字符串转化为十进制。原创 2022-10-05 11:12:29 · 3134 阅读 · 0 评论 -
string.find()与string::npos
是一个字符或字符串查找函数,该函数有唯一的返回类型,即string::size_type,即一个无符号整形类型,可能是整数也可能是长整数。我们在学习C++的时候必不可少的使用到string类中的find()函数,它是一个查找函数,功能还是很强大的,但是此处我们不对他进行过多的讲解只是了解它的基本使用,最重要的是和string::npos的关系。string::npos参数: npos是一个常数,用来表示不存在的位置,npos定义的类型是: string::size_type。原创 2022-09-30 09:38:03 · 448 阅读 · 0 评论 -
在 C + + STL | std 中复制的不同方法: copy ()、 copy _ n ()、 copy _ if ()、 copy _ back ()
这个函数有4个参数,其中3个类似于 copy () ,还有一个附加函数,当返回 true 时,一个数字被复制,else 数字不被复制。: The pointer to the beginning of destination container, to where elements have to be started copying. 指向目标容器开头的指针,指向必须开始复制元素的位置。C + + STL 中存在各种各样的 copy () ,允许以不同的方式执行复制操作,它们都有自己的用途。原创 2022-09-24 22:43:44 · 454 阅读 · 0 评论 -
C++ accumulate()函数
accumulate函数的前两个参数指定累加的范围,第三个参数为累加的初值,第四个参数为进行的操作,默认为累加。accumulate函数将一段数字从头到尾累加起来,或者使用指定的运算符进行运算。使用accumulate要添加。accumulate函数声明。原创 2022-09-21 09:19:15 · 684 阅读 · 0 评论 -
VS Code运行C++程序的配置过程
使 VS Code 编辑器具备执行 C 和 C++ 代码能力的配置方法很简单,只需要为其安装 2 个扩展插件即可,分别为 C/C++扩展插件和 Code Runner 插件。同样,依次选择“运行 -> 安装附加调试器”,在左侧对话框中输入“Code Runner”后按Enter回车键,然后选择 Code Runner 并点击 Install 下载。菜单栏中依次选择"运行 -> 安装附加调试器",会弹出左侧对话框,选择“C/C++”扩展组件并点击“Install”进行安装。也可以使用命令行的方式执行。原创 2022-09-20 21:05:55 · 1338 阅读 · 0 评论 -
MinGW的安装
我们知道,GCC 还支持其它编程语言,读者可借助此配置器,随时实际需要安装自己需要的编译环境。注意,整个安装过程中可能会提示某些组件下载失败,但没关系,后续需要时,可以通过 MinGw Installer 安装界面中的 “All Packages”选项中,手动选择指定的安装包进行安装。GCC 官网提供的 GCC 编译器是无法直接安装到 Windows 平台上的,如果我们想在 Windows 平台使用 GCC 编译器,可以安装 GCC 的移植版本。然后耐心等待,直至安装成功,即可关闭此界面。原创 2022-09-19 22:35:30 · 223 阅读 · 0 评论 -
c++ tuple元组
C++11 标准新引入了一种类模板,命名为 tuple(中文可直译为元组)。tuple 最大的特点是:实例化的对象可以存储任意数量、任意类型的数据。tuple 的应用场景很广泛,例如当需要存储多个不同类型的元素时,可以使用 tuple;当函数需要返回多个数据时,可以将这些数据存储在 tuple 中,函数只需返回一个 tuple 对象即可。tuple是一个固定大小的不同类型值的集合,是泛化的std::pair。原创 2022-09-16 15:52:52 · 286 阅读 · 0 评论 -
c++ unique函数
unique函数属于STL中比较常用函数,它的功能是元素去重。即”删除”序列中所有相邻的重复元素(只保留一个)。此处的删除,并不是真的删除,而是指重复元素的位置被不重复的元素给占领了(详细情况,下面会讲)。由于它”删除”的是相邻的重复元素,所以在使用unique函数之前,一般都会将目标序列进行排序。原创 2022-09-16 15:24:41 · 2796 阅读 · 0 评论 -
C++ accumulate()函数
前两个参数是定义序列的输入迭代器,第三个参数是和的初值;第三个参数的类型决定了返回值的类型。第二个版本的第 4 个参数是定义应用到总数和元素之间的二元函数对象。这时,我们在必要时可以定义自己的加法运算。accumulate函数将一段数字从头到尾累加起来,或者使用指定的运算符进行运算。使用accumulate要添加。accumulate函数声明。原创 2022-09-14 15:43:23 · 419 阅读 · 0 评论 -
runtime error: reference binding to null pointer of type ‘int‘ (stl_vector.h)
vector在还没有分配任何空间时还不能像数组一样用下标形式去访问vector的(v[0]也不行)!否则编译通过但报运行错误runtime。vector是动态数组,像"vector v"这种跳过分配空间的创建方式是允许的,编译器不会报错,但会运行报错即runtime error。这种情况需要先push_back()或v={1,2}等形式给其分配了空间后,才能用[ ]形式访问!报错原因:没有指定数组大小。增加数组大小之后成功运行。原创 2022-09-14 15:19:03 · 5359 阅读 · 0 评论 -
C++ 一维数组vector<int>
3、merge的时候指定vec3的位置一定要从begin开始,如果指定了end,它会认为没有空间。1、vec1,和vec2需要经过排序,merge只能合并排序后的集合,不然会报错。2、vec3需要指定好大小,不然会报错。原创 2022-09-14 15:14:56 · 571 阅读 · 0 评论 -
C++中substr()函数
如同以 basic_string(data()+pos, count) 构造返回的 string ,这隐含将会默认构造返回的string 的分配器——新分配器将不是 this->get_allocator() 的副本。返回子串 [pos, pos+count)。若请求的子串越过 string 的结尾,或若 count == npos ,则返回的子串为 [pos, size())。含子串 [pos, pos+count) 的 string。pos - 要包含的首个字符的位置。与 count 成线性。原创 2022-09-07 14:10:49 · 651 阅读 · 0 评论 -
C++ vector使用方法
向量(vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组。vector < 类型 > 标识符vector < 类型 > 标识符(最大容量) vector < 类型 > 标识符(最大容量 , 初始所有值) Int i [ 5 ] = {1 , 2 , 3 , 4 , 5 } vector < 类型 > vi(I , i + 2);原创 2022-09-07 11:29:49 · 1489 阅读 · 0 评论 -
emplace()
值得注意的是 map 类型的 emplace 处理比较特殊,因为和其他的容器不同,map 的 emplace 方法把它接收到的所有的参数都一起转发给 pair 的构造函数。但是对于一个 pair 来说,它既需要构造它的 key 又需要构造它的 value。简单的理解,就是 emplace() 在插入元素时,是在容器的指定位置直接构造元素,而不是先单独生成,再将其复制(或移动)到容器中。,即被插入元素的构造函数需要多少个参数,那么在 emplace() 的第一个参数的后面,就需要传入相应数量的参数。...原创 2022-08-31 23:37:41 · 3827 阅读 · 0 评论 -
for(auto count : counts)
其中counts应满足:begin(counts),end(counts)是合法的。for(auto&& count: counts),其与for(auto& count:counts)的区别在于auto的推导是否受初始化值的影响。auto是声明自动变量格式为for(元素类型 遍历值:数组/容器),之所以用auto是可以根据赋值自动推导出变量类型。c++11的特性,v是一个可遍历的容器或流,比如vector类型,i就用来在遍历过程中获得容器里的每一个元素。代码1:for(auto &i:v)...原创 2022-08-28 01:30:30 · 340 阅读 · 0 评论