零碎的学习

linux常问命令

查询端口是否被占用: lsof -i:80

查看cpu使用情况: top

查看某个进程:ps -ef|grep XX

  • -ef 是用标准的格式显示进程的
  • aux 是用BSD的格式来显示

查看文件夹大小:du -sh XXX/

  • -s或–summarize 仅显示总计,只列出最后加总的值。

  • -h或–human-readable 以K,M,G为单位,提高信息的可读性。

查看历史命令占用情况: history|grep XX

netstat -an |grep tcp | grep 5188

  • 查看已连接网络状态 tcp 端口518的
  • -a:显示所有socket,包括正在监听的。
  • -n:以网络IP地址代替名称,显示出网络连接情形。

kill -9 完全杀死进程

  • -l 信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称。
  • 只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略。

ulimit -n

  • 查看文件能打开的文件描述符数量的最大值

od -c xx

  • 以ascii码查看文件

自定义优先级队列

bool operator<(const Node &n) const {
            return val>n.val;

find用来找文件

用find修改所有文件权限

find . -name *.txt -type f -mtime -1 -size +5M -exec chmod -R 644 {} \;

grep扩展命令,匹配行

egrep -n -v '([0-9]{1,3}\.){3}\.[0-9]{1,3}' 123.txt
su切换命令
反引号 代表命令

awk分割文本

awk -F 'addr:' "{print $1}"

sed替换

sed -i '#is pp#not he#2'

const在函数前后

当const在函数名前面的时候修饰的是函数返回值,在函数名后面表示是常成员函数,该函数不能修改对象内的任何成员,只能发生读操作,不能发生写操作。

去除字符串前后空格

s.erase(0,s.find_first_not_of(' '));
s.erase(s.finde_last_not_of(' ')+1);

用流输入输出

istringstream input(data)
input>>val;

ostringstream out;
out<<'eee';

内存屏障

内存屏障(英语:Memory barrier),也称内存栅栏,内存栅障,屏障指令等,是一类同步屏障指令,它使得 CPU 或编译器在对内存进行操作的时候, 严格按照一定的顺序来执行, 也就是说在memory barrier 之前的指令和memory barrier之后的指令不会由于系统优化等原因而导致乱序。

//向上取整
n/i 的向上取整 为 (n+i-1)/i;

while(x>>k&1) k++; //x第k位不等于1

304状态码

如果客户端发送了一个带条件的GET 请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个304状态码。 简单的表达就是:服务端已经执行了GET,但文件未变化

500系列状态码

500 服务器内部错误
502 Bad Gateway错误
503 服务器目前无法使用(由于超载或停机维护)这只是暂时状态。(服务不可用)
504 Bad Gateway timeout 网关超时
505 服务器不支持请求中所用的 HTTP 协议版本。(HTTP 版本不受支持)

判断是否同时为空,一个为空就是false,两个都为空时true

if (!p || !q) return !q &&!p

python cmp函数自定义

def cmp(a, b):
    return (a > b) - (a < b)

python 自定义排序方式

class Solution:
    def minNumber(self, nums: List[int]) -> str:
        def sort_rule(x, y):
            a, b = x + y, y + x
            if a > b: return 1
            elif a < b: return -1
            else: return 0
        
        strs = [str(num) for num in nums]
        strs.sort(key = functools.cmp_to_key(sort_rule))
        return ''.join(strs)

python lamda

a={2:1,3:3,5:4} 
sorted(a.items(), key=lambda x:x[1])
print(a)

python 二维数组最大值

res = max(map(max,dp))

nonlacal

nonlocal声明的变量不是局部变量,也不是全局变量,而是外部嵌套函数内的变量。

异或

如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。

reduce

from functools import reduce
lst=[1,2,3,4]
print(reduce(lambda x,y: x+y, lst,5))

# 5是初始值,也可以理解为第三个参数
# 计算呢过程
-->5+1=6
-->6+2=8
-->8+3=11
-->11+4=15

python cmp

from functools import cmp_to_key
strs.sort(key = functools.cmp_to_key(sort_rule))

当cmp返回是正数时 交换两元素

二分

找满足条件的 和另一半有区别的边界的那个值,
就是如何区分的那个值

节点放进堆

heappush(node)怎么排序呢

python replace

a="adffasd"
print(a.replace('a','')
print(a)
结果:
dffsd
adffasd

isdigit

t.isdigit():# 负数 返回的是false
int 是向0取整, 而整除//是向下取整

低向高

byte<char<short<int<float<long<double
由低到高的顺序排列,如果由高到低转化必须要强转,因为这样会丢失精度。
由低到高则可以自动转化因为大的里面基本包含小的数

ascii

A:65 a:97
转义字符

python 去重

return  list(set(array))

c++ 去重

return nums.erase(nums.unique(nums.begin(),nums.end()),nums.end())

memset

memset会把每个字节都写成0x3f,dist[n]是int型变量,包含4个字节,所以一定要写成0x3f3f3f3f

vector B 连在A后面

A.insert(A.end(),B.begin(),B.end())

char 和 string 互相转化

char转化为string:string(1,'a'+3)
string转化为char:s.c_str()

判断map中key值是否存在

if (mymap.find(key) == mymap.end())
    cout << "没有这个key" << endl;

** 如果key存在,则find返回key对应的迭代器,如果key不存在,则find返回尾后迭代器 .end()。可以参考下面的示例来判断key值是否存在 **

if (mymap.count(key) == 0)
    cout << "no this key" << endl;

** count函数用于统计key值在map中出现的次数,map的key不允许重复,因此如果key存在返回1,不存在返回0 **

c++ lamda函数,要用变量的话,用[=]用来捕获变量,要引用的话,[&]就不需要再加&了

	//leetcode1030
	class Solution {
public:
    vector<vector<int>> allCellsDistOrder(int R, int C, int r0, int c0) {
        vector<vector<int>> res;
        for(int i=0;i<R;i++)
            for(int j=0;j<C;j++){
                res.push_back({i,j});
            }
        sort(res.bebin(),res.end(),[=](vector<int> a, vector<int> b){
            return abs(r0-a[0])+abs(c0-a[1])<abs(r0-b[0])+abs(c0-b[1]);
        });
        return res;
    }
};

优先级队列默认是大根堆

C++优先级队列 https://www.cnblogs.com/huashanqingzhu/p/11040390.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值