- 博客(7)
- 收藏
- 关注
原创 string
构造函数#include<string>using namespace std;//string是std命名空间的一部分string s; //空字符串string s("name");string s="name";char c[]="name";string s(c); //会调用转换函数,所以c字符串可以作为一个参数被用在任何可以接收string对象的位置string s(c,3);//用c的前3个字节来初始化对象string s("her name");strin
2022-02-08 20:57:25
164
原创 vector
定义#include<vector>using namespace std;//typename是普通类型vector<int>a; //这里相当于一维数组,a[size]//若typename是stll容器,>>之间加空格,否则系统以为是位运算vector<vector<int> >a;//二维数组的比较vector<vector<int> >a;//两个维都可变vector<int>
2021-06-10 20:31:56
81
原创 数组专题---删除重复项、删除指定元素
27. 移除元素双指针法(前后指针)vector容器是顺序存储,所以不能单独删除数组中某个元素,只能覆盖!因为要求“原地”删除,所以想要用“双指针法”自己的双指针思路是:定义两个指针,分别指向数组的头尾first负责定位到val的位置,last负责定位到非val的位置,然后把非val和val交换,最终使所有val都聚在数组后面,再调用erase删除所有val两个指针指向的情况如下*first*lastoperation=val=vallast–=v
2021-06-01 17:40:00
199
原创 二分查找专题
34. 在排序数组中查找元素的第一个和最后一个位置 本题其实就是用寻找左右边界的二分搜索,但做题中出现了几个问题没有分析数组为空的情况//目标值大于或小于所有元素值,数组无元素//错误写法,先检查的是target>nums[right-1],如果right=0,则会出现非法访问,所以应该先检查len==0if(target>nums[right-1]||target<nums[0]||len==0) return result; //正确写法 if
2021-06-01 16:46:30
31
原创 位运算总结
运算符位运算就是对整数在内存中的二进制位进行操作操作数以二进制补码形式按位参与运算,且操作数只能是整型或字符型,不能是实型不同长度的数据进行位运算时,如a&b,a–long,b–Int右端对齐b是正数,则左侧16位补0b是负数,则左侧16位补1b是无符号整数,则左侧补0与&–全1才1或|–有1就1异或^–相同为0移位0&0=00|0=00^0=0左移一位==乘2(右边位补0)0&1=00|1=10^1=1正数右移一
2021-06-01 12:46:59
206
原创 二分查找法
二分法二分法不难,主要是要注意细节不同的区间,写法不一样。搜索区间有两种,[left,right] 和 [left,right)首先,左闭右闭的搜索区间有三个细节:right=strlen(nums)-1因为搜索区间是[left,right] ,所以right应该是指向有效元素的,如果是right=strlen(nums),那搜索区间就越界了while(left<=right)当left==right时,这个搜索区间只有一个元素,且这个区间是有效的,应该继续查找是否为
2021-05-30 14:36:03
68
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人