c++
文章平均质量分 76
wang_hao..
这个作者很懒,什么都没留下…
展开
-
智能指针
先看一段代码,非常常见的归并排序;void _MergeSort(int* a, int* tmp, int begin, int end){ if (begin >= end) return; int mid = begin + ((end - begin)/2); _MergeSort(a, tmp, begin, mid); _MergeSort(a, tmp, mid + 1, end); int index = 0; int begin1 = begin, end1 =原创 2020-10-18 23:04:29 · 262 阅读 · 0 评论 -
链表算法题
1.链表反转leetcode链接利用栈先入先出/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* reverseList(ListNode* head)原创 2020-08-01 22:03:20 · 125 阅读 · 0 评论 -
题解: 调整数组顺序使奇数位于偶数前面
链接调整数组顺序使奇数位于偶数前面输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。示例:输入:nums = [1,2,3,4]输出:[1,3,2,4]注:[3,1,2,4] 也是正确的答案之一。提示:1 <= nums.length <= 500001 <= nums[i] <= 10000思路:从前往后交换位置,偶数换到后面,奇数继续留在前面;循环控制:i< j;class Solu原创 2020-07-04 22:37:18 · 118 阅读 · 0 评论 -
题解:不用加减乘除做加法
[题目链接](https://leetcode-cn.com/problems/bu-yong-jia-jian-cheng-chu-zuo-jia-fa-lcof/)写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号。示例:输入: a = 1, b = 1输出: 2提示:a, b 均可能是负数或 0结果不会溢出 32 位整数思路:加法由俩部分组成,即进位和非进位示例:如 0110 和 0011非进位位置:俩个数字异或的结果为非进位进位位置原创 2020-07-04 01:09:08 · 153 阅读 · 0 评论 -
vector的基本使用
vector的介绍1.vector是表示可变大小的数组容器;2.与数组的不同是,vector的大小是可以动态改变的,大小会被容器自动处理;33.vector插入新数据时需要增容,vector会分配一个新的数组,然后将数据全部拷过来;vector的使用vector //无参构造vector(size_type n,const value_type& val = value type()) //构造并初始化n个val;vector (const vector & x);原创 2020-05-22 23:38:28 · 908 阅读 · 0 评论 -
string类的简单实现
string的基本实现实现string的构造,拷贝构造,赋值运算符重载,析构函数class my_string{public: my_string(const char* str = " ") { if (nullptr == str) { assert(false); return; } _str = new char[strlen(str) + 1]; strcpy(_str, str); } my_string(const my_string&原创 2020-05-21 23:30:33 · 138 阅读 · 0 评论 -
string类的使用
string类:1.string是表示字符串的类;2.string类的接口与常规容器接口基本相同3.string底层实现由basic_string模板类实现;string的构造string() //用于构造string类的对象;string(const char*s) //用C-string构造string;string(size_t n,char c) //string类中含n个c字符string(const string&s) // 拷贝构造函数(深拷贝) st原创 2020-05-20 00:09:38 · 150 阅读 · 0 评论 -
深浅拷贝问题
深浅拷贝的认识与理解·浅拷贝:按照被拷贝的对象的存储地址进行拷贝(不开辟新空间),一般为编译器默认的拷贝构造函数深拷贝:创建一个新的空间,将需要拷贝的数据依次进行拷贝class Date{public: Date(int year = 1, int month = 1, int day = 1) { _year = year; _month = month; _day = day; } void print() { cout << _year <<原创 2020-05-19 00:11:29 · 226 阅读 · 0 评论 -
日期类的实现
通过创建一个日期类加深对C++类的理解实现:创建私有成员 _year,_month,_day;成员函数:构造函数,析构函数,拷贝构造函数,以及自定义类型的运算符重载#includeusing namespace std;class Date{public:int get_day(int year, int month){static int month_day[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };if原创 2020-05-17 23:53:48 · 126 阅读 · 0 评论