0%

C++笔记

本文为在C++使用过程中的盲区与疑问记录,因为没有系统地学习过C++所以将会记录较多的基础知识。受时间限制,目前只能一点点积累基础,系统学习对时间demanding并且不面向应用,不能很好掌握。

[TOC]

STL

C++标准模板库(Standard Template Library, STL) 是一套功能强大的

vector容器

向量是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其他类型容器一样,它能够存放各种类型的对象。可以简单认为向量是一个能够存放任意类型的动态数组

特性:顺序序列(线性顺序)、动态数组(支持对任意元素进行快速直接访问)、能够感知内存分配器的(Allocator-aware)(使用一个内存分配器对象来动态处理它的存储需求)

1
2
3
4
5
vector(); //空
vector(int nSize); // 元素个数为nSzie
vector(int nSize, const t& t); // 值均为t
vector(const vector&); // 复制构造函数
vector(begin, end); //复制[begin, end)区间内另一个数组的元素到vector中

需要 #include < vector>

比如 vector<pair<int, int>> jobs(n); 再通过遍历赋值,jobs[i] = {d[i], p[i]} 就可以实现等同于python中的zip()操作。

排序

ranges::sort

C++20引入的新特性。

std::ranges::sort(numbers);就可以完成排序。

感悟