Golang学习笔记_基础语法,数组,切片,,映射,闭包
写在前面
后端, 得开始看看 Go 语言了, 感觉还挺好玩的, 试试.
虽然距离秋招的时间不多了…
教程就是官网的 Tour of Go, 我看的中文版, 还可以, 很详细.
数组
切片
练习题:
Go 语言之旅;
package main
import (
"math"
"golang.org/x/tour/pic"
)
func f(x int, y int) int {
_ = math.Log // placeholder
// return (x + y) / 2
// return x * y
// return x ^ y
// return x * int(math.Log(float64(y))) // cast
...
配置clangd使用指定的c++标准
方法
下面内容均写入在项目根目录下的.clangd 文件中
指定C++标准
CompileFlags:
Add: [-std=c++20]
这个很简单, 但是后来我发现一个问题, 如果目录下存在 C 源文件, 那么就会提示错误, 没有这个编译选项, 那么下面还得添加个排除规则
排除规则
CompileFlags:
Add: [-xc++, -std=c++20] # treat all files as C++
指定编译器
CompileFlags:
Compiler: g++
参考
Configuration;
Dns 会不会返回多个 ip 地址
问题
DNS 解析一个地址的时候会返回多个 IP 吗?
不会
分析
基于 DNS 的负载均衡
实际上可以实现一个域名对应多个 IP 地址的, 只需要在 DNS服务器中添加一条解析记录, 将域名指向服务器的 IP 地址即可.
DNS 解析策略
轮询(poll): DNS 服务器按顺序返回多个 IP 地址, 实现请求的轮流分发道不同的服务器上.
权重: 为每个 IP 地址分配不同的权重, 权重越高的服务器被选中的概率越大.
响应时间: DNS 服务器通过测量服务器响应时间来选择最快的服务器, 将域名解析为对应的 IP 地址.
优缺点
优点
将负载均衡工作交给 DNS, 省去了网站管理维护负载均衡服务器的麻烦
技术实现灵活, 操作简单, ...
Vim 中复制代码常用的一些正则表达式替换技巧
写在前面
这次来写一个比较小的主题, 关于在 vim 中快速替换内容, 也算是精进一下 Vim 技巧了.
这里以复制别人博客文章中的代码为例, 如果有一键复制当然是最好的, 那没有的话就要手动复制了, 而这就会出现一个问题, 如果前面不巧含有行号之类的冗余信息呢? 这就需要自己手动删除了(下例), 由于 Vim 含有很多高级的宏操作, 下面来看看怎样快速解决这个问题. (并且给出以下举一反三的方法)
1namespace A {
2 // S2
3 struct Base {};
4}
5
6namespace M {
7 // S3 not works!
8 namespace B {
9 // S1
10 ...
B树,b+树基本原理与增删改查的c++实现
写在前面
B树
定义
一棵B树$T$是具有以下性质的有根树(根为$T.root$)
每个结点$x$有以下属性:
$x.n$: 当前存储在节点$x$中的关键字个数
$x.n$个关键字本身: $x.key_1$, $x.key_2$, … $x.key_{x.n}$, 以非降顺序存放, 即
\(x.key_1\leq x.key_2\leq ...\leq x.key_{x.n}.\)
$x.leaf$, 布尔值, 如果$x$是叶结点, 为true, 内部节点为false;
内部节点$x$还包含...
定义区分gnu,llvm编译器和unix运行环境的预定义宏
前言
本文仅针对 MacOS 以及 Linux 平台(Ubuntu)的 llvm-clang++ 和 g++编译器测试, 用于跨平台程序开发.
区分运行环境(操作系统)
#ifdef __APPLE__
#include "zemaphore.h" // 自定义
#elif __linux__
#include <semaphore.h> // pthread
#endif
区分编译器
因为 clang 也采用了 gcc 的部分扩展, 所以包含了__GNUG__宏, 于是只能通过双重判定来做:
#ifdef __GNUG__
#ifndef __clang__
printf("lg of %d is %d\n", x, std::__lg(x)); /...
Stl源码剖析笔记_迭代器与traits编程技法
写在前面
第一部分内容算是一个总览, 介绍各种组件的联系, 内存分配部分之后看完视频再来温习, 先看看迭代器部分(感觉容易被问到).
迭代器的本质
迭代器是一种行为类似指针的对象.
智能指针, 并且重载了内容提领(deference, ->)和成员访问(member access, .)运算符, 使其使用起来像一根指针.
共计 455 篇文章,57 页。
您是Zorch的第 个小伙伴
Hits