主页

Golang导入本地包,模块的方法总结

写在前面 来总结一下 GoLang 中使用本地包的操作. environment: ==> go version go version go1.20.4 darwin/arm64 go mod 是 go 1.11 (大约 2018 年 之后)开始支持的 本地包的导入可以分成两个情况, 即: 要导入的包存在于在本项目的目录下, 直接导入. 要导入的包存在于其他目录下, 使用 replace 命令导入. 代码可以在这里找到: GoLang中使用本地包的操作; 在本项目目录下导入 这里以在 ./pkg0/main.go 中导入内部目录 ./pkg0/kpkg/ 中的 kpkg 模块为例, 首先需要填写内部模块(kpkg)的go.mo...

阅读更多

素数相关力扣题目总结

写在前面 基本问题 技巧 这类题需要预处理, 将处理好的素数数组作为全局变量, 可以节省一大部分时间. 全局变量初始化的便捷方法可以用 lambda, 算是一个不错的技巧了(在 C++中 main 函数之前执行的函数也用到了这一技巧), 即: // global variable declare here int _ = []{ // golbal variable need not capture in lambda // init something... return 0; }(); 这里给出预处理某一范围内的素数的通用模板: (欧拉筛法, 又称线性筛法) constexpr int MX = 1e6; int primes[MX], cnt{};...

阅读更多

C++类内弹性数组的使用技巧

class P { public: int x; int array_[1]; // Must be declared at the end of the class }; 这里就体现了使用 new 和 malloc 的一个不同, 即 new 不能指定所分配的具体内存大小, 只能让编译器根据对象所占内存的大小来推断(计算), 如果非要指定(并且不是通过 array-new 的方式)那就要用 placement-new 方法. 代码如下: void t1() { cout << "sizeof(P)=" << sizeof(P) << endl; // 8 // 24=4+5*4, array_.size=5 ...

阅读更多

Clang和 gnu++的区别

默认初始值 #include <bits/stdc++.h> using namespace std; void f(int* x) { cout << x << endl; cout << *x << endl; cout << *(x + 1) << endl; } int main(int argc, char* argv[]) { // int x[0]{}; #ifdef __clang__ // clang cout << "clang++:\n"; f(x); #endif // clang++: // 0x1...

阅读更多

Golang学习笔记_方法

写在前面 练习, Stringer Go 语言之旅; package main import "fmt" type IPAddr [4]byte // TODO: 给 IPAddr 添加一个 "String() string" 方法 func (ip IPAddr) String() string { return fmt.Sprintf("%d.%d.%d.%d", ip[0], ip[1], ip[2], ip[3]) } func main() { hosts := map[string]IPAddr{ "loopback": {127, 0, 0, 1}, "googleDNS": {8, 8, 8, 8}, } for name, ip...

阅读更多

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;

阅读更多

Total views.
您是Zorch的第 个小伙伴
Hits