
C++
永远的EMT
每天时刻保持超越自我的意识
展开
-
C++中指针常量和常量指针的区别
在C++学习使用过程中,每个人都不可避免地使用指针,而且都或多或少的接触过常量指针或指针常量,但是对这两个的概念还是很容易搞糊涂的。 本文即是简单描述指针常量和常量指针的区别。 常量指针 定义: 又叫常指针,可以理解为常量的指针,也即这个是指针,但指向的是个常量,这个常量是指针的值(地址),而不是地址指向的值。 关键点:转载 2017-09-06 12:12:13 · 239 阅读 · 0 评论 -
STL源码剖析——空间配置器
目录 构造和析构基本工具:construct() 和 destroy() 空间的配置与释放:std::alloc 二级空间配置器简述 空间配置函数allocate() 空间释放函数deallocate() 重新填充free lists 内存池 多线程环境下内存池互斥访问 小结 在STL中,空间配置在C++的基础上增加了一些特性。STL allocator 将这两个阶段分开操...原创 2019-07-07 02:17:08 · 478 阅读 · 0 评论 -
STL源码剖析——hash_map解析
目录 hash table 的节点定义: hashtable 的迭代器: hashtable 的数据结构 rehash和插入操作 复制与整体删除 C++实现的hashmap简易类 STL的的hash_set,hash_map都是基于hash_table实现的,SGI STL 中哈希表采用链接法解决冲突。结构中维护了一个 vector,vector 中每一个元素称为一个桶(bucket...原创 2019-07-09 02:01:41 · 829 阅读 · 0 评论 -
【LeetCode】332. Reconstruct Itinerary
Given a list of airline tickets represented by pairs of departure and arrival airports [from, to], reconstruct the itinerary in order. All of the tickets belong to a man who departs from JFK. Thus, th...原创 2018-09-10 14:26:54 · 165 阅读 · 0 评论 -
【LeetCode】632. Smallest Range
You have k lists of sorted integers in ascending order. Find the smallest range that includesleast one number from each of the klists. We define the range [a,b] is smaller than range [c,d] if b-a原创 2017-09-21 11:27:26 · 428 阅读 · 0 评论 -
【LeetCode】283. Move Zeroes
Given an array nums, write a function to move all 0's to the end of it while maintaining the relative order of the non-zero elements. For example, given nums = [0, 1, 0, 3, 12], after calling you原创 2017-09-11 19:26:31 · 313 阅读 · 0 评论 -
【LeetCode】234. Palindrome Linked List
Given a singly linked list, determine if it is a palindrome. Follow up: Could you do it in O(n) time and O(1) space? 题解:判断一个单链表是不是回文串,可以将后半部分进行反转。注意这里找中间位置可以用两指针的方法,设置快慢指针,快指针是慢指针两倍速度从而快指针到结尾时可以保证慢原创 2017-09-11 16:25:23 · 330 阅读 · 0 评论 -
【LeetCode】532. K-diff Pairs in an Array
Given an array of integers and an integer k, you need to find the number of unique k-diff pairs in the array. Here a k-diff pair is defined as an integer pair (i, j), where i and j are both numbers原创 2017-09-11 13:55:42 · 445 阅读 · 0 评论 -
【LeetCode】88. Merge Sorted Array
Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note: You may assume that nums1 has enough space (size that is greater or equal to m + n) to hold additio原创 2017-09-10 21:25:05 · 235 阅读 · 0 评论 -
【LeetCode】345. Reverse Vowels of a String
题解:翻转元音字母,只需两指针,注意大小写,这里可以用string的方法find_first_of来查找元音位置 class Solution { public: string reverseVowels(string s) { int i = 0, j = s.size() - 1; while (i < j) { i = s.f原创 2017-09-10 19:20:04 · 294 阅读 · 0 评论 -
【LeetCode】349. Intersection of Two Arrays
题解:找相同元素不含重复值可以用set vector intersection(vector& nums1, vector& nums2) { set st(nums1.begin(),nums1.end()); vector res; for(auto a:nums2) { if(st.erase(a)){ res.pus原创 2017-09-09 22:25:54 · 291 阅读 · 0 评论 -
STL源码剖析——vector的实现
目录 vector的数据结构 vector的构造与析构 vector的插入与删除 vector的其他操作 reserve()与resize()的区别 vector的简单实现 vector的扩容系数 vector的数据结构 vector采用简单的线性连续空间。以两个迭代器start和end分别指向头尾,并以迭代器end_of_storage指向容量尾端。容量可能比(尾-头)还大,多...原创 2019-07-07 03:17:13 · 509 阅读 · 0 评论