- 博客(11)
- 资源 (3)
- 收藏
- 关注

原创 Allocator容器实现自己的vector(踩过无数坑和阅读c++ primer得到的)
Allocator容器实现自己的vector基本知识点allocator容器需要引入#include<memory>头文件,与new/delete最大的不同就是构造和初始化是分开的,具体函数及步骤如下:1、声明一个变量allocator<T> alloc;2、分配原始内存返回指针T* test=alloc.allocate(n);3、初始化分配的内存for(size_t i=0;i<n;i++) { //注意此处调用的是拷贝构造函数初始化内存 alloc.co
2020-07-27 22:24:54
939
原创 堆排序c++代码
堆排序从第一个非叶子节点开始建立大顶堆,然后与堆顶进行交换,重新进行再调整class Solution{public: //第二个参数表示剩余未排序数字的数量即堆的大小 void makeHeap(vector<int> &arr,int heapSize ,int index) { int left = 2 * index + 1;//左节点 int right = 2 * index + 2;//右节点
2021-11-16 21:52:29
1983
原创 选择排序及优化版本-二元选择排序
选择排序基本思路基本思路就是遍历两次,外层循环从0到n-1,内层循环选出最小的值与当前值进行交换,保证最小的值在前面。void selectionSort(vector<int> &arr){ int n=arr.size(); int minIndex=0; for(int i=0;i<n-1;i++) { for(int j=i+1;j<n;j++) { if(arr[minIndex]>arr[j]) { minInd
2021-11-16 15:26:00
1007
原创 荣耀机考字符串展开C++
题目描述给定一个字符串,字符串包含数字、大小写字母以及括号(包括大括号,中括号,小括号),括号可以嵌套,即括号里面可以出现数字和括号。按照如下规则对字符串进行展开,不需要考虑括号不成对的问题,不考虑数字后面没有括号的情况,即 2a2(b)不考虑。数字表示括号里的字符串重复的次数,展开后的字符串不包含括号将字符串进行逆序展开输入abc2{de3[fg]}输出gfgfgfedgfgfgfedcba#include <iostream>#include<vector>
2021-11-02 09:32:50
1317
原创 c++ 面试突击memcpy函数的底层原理?strcpy函数有什么缺陷
void *my_memcpy(void *dst, const void *src, size_t size){ char *psrc; char *pdst; if (nullptr == dst || nullptr == src) { return nullptr; } //出现地址重叠,从后向前拷贝 if ((src < dst) && (char *)src + size > (char *)d
2021-11-01 22:30:26
1071
转载 到底能不能用指针作为拷贝构造函数的参数?值传递可不可以?这篇文章为你揭晓
1、问题一:拷贝构造函数的形参是否可以是值传递,为什么?#include<iostream>using namespace std; class A{public: A() { cout << "in constructor" << endl; } A(A test) { this->a = test.a; cout << "in copy constructor" << endl; }private
2021-10-28 11:00:01
343
原创 const作用、优缺点及注意事项
作用修饰变量,变量只读不可修改,定义时必须初始化;修饰函数形参,函数内部不可改变形参的值;类中使用constconst修饰成员变量,表示成员变量不能被修改,同时只能在初始化列 表中赋值const修饰成员函数:1、该函数不能改变对象的成员变量2、不能调用非const成员函数,因为任何非const成员函数会有修改成员变量的企图3、const的成员函数只能被一个const类对象调用。即const类对象只能调用const成员函数4、const关键字不能与static关键字同时使
2021-10-28 10:45:42
1228
原创 力扣17.14. 最小K个数——快速排序
class Solution {public: vector<int> smallestK(vector<int>& arr, int k) { if(k==0)return{}; quickSort(arr, 0, arr.size() - 1,k); vector<int> vec; for (int i = 0; i < k; ++i) {
2021-09-25 20:15:02
186
原创 constexpr和const
constconst表示变量是只读不可改变的,需要注意的几点如下:1、首先变量必须初始化const int i=get_size();//运行时初始化const int j=42;//编译时初始化2、仅在本文件有效,若需跨文件则需要加入extern关键字。只在一个文件定义const,而在其他多个文件中声明并使用(???不懂不是直接include头文件就可以)3、顶层const修饰算数类型、类、指针本身。而底层const与指针与引用等复合类型有关。例如`int i=10;const int.
2020-08-05 22:55:44
230
Vysor2.1.7.rar
2021-01-20
my_allocator_vector.rar
2020-07-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人