当前位置: 首页 > wzjs >正文

学网站建设的软件app推广接单平台有哪些

学网站建设的软件,app推广接单平台有哪些,有关优化网站建设的书籍,合肥营销型网站建设公司最近新闻看到17岁中专女生拿下阿里全球数学竞赛第12名。咱们学习标准库中的数据结构是和学习数学是一脉相承的,结构体很多,也非常枯燥,但是不能全面解读过一遍,你很难写出合理的代码。所以,这一章节我们开始深度解析Zi…

最近新闻看到17岁中专女生拿下阿里全球数学竞赛第12名。咱们学习标准库中的数据结构是和学习数学是一脉相承的,结构体很多,也非常枯燥,但是不能全面解读过一遍,你很难写出合理的代码。所以,这一章节我们开始深度解析Zig中的数据结构,大家坐稳,让我们一起小跑前进。

1.1 ArrayList

Zig中广泛使用了std.ArrayList,它充当了一个可以动态改变大小的缓冲区。std.ArrayList(T)类似于C++中的std::vector和Rust中的Vecdeinit()方法会释放ArrayList的所有内存。我们可以通过其切片字段(.items)来读取和写入其中的数据。

接下来,我们将讲解测试分配器(std.testing.allocator)的使用方式。这是一种特殊的分配器,仅在测试环境中生效,并具备检测内存泄漏的功能。在实际编码过程中,请根据具体需求选择合适的分配器。

const std = @import("std");
const expect = std.testing.expect;const eql = std.mem.eql;
const ArrayList = std.ArrayList;
const test_allocator = std.testing.allocator;test "arraylist" {var list = ArrayList(u8).init(test_allocator);defer list.deinit();try list.append('H');try list.append('e');try list.append('l');try list.append('l');try list.append('o');try list.appendSlice(" World!");try expect(eql(u8, list.items, "Hello World!"));
}

1.2 BoundedArray

BoundedArray是一种结构,它包含一个固定大小的数组以及当前正在使用的长度。

它可以被用作一个变长数组,可以自由地调整大小至支持数组的最大尺寸。

如果你正在寻找Zig语言中类似于Rust超级实用的ArrayVec的等价物,这就是你想要的。

当需要传递那些确切大小仅在运行时才知悉,但最大尺寸在编译时已知的小型数组,并且无需分配器(Allocator)的情况下,使用有界数组是非常有用的。

相比于分别维护缓冲区和活动长度,或者涉及到包含指针的结构,有界数组使用起来更简便也更安全。

var actual_size = 32;
var a = try BoundedArray(u8, 64).init(actual_size);
var slice = a.slice(); // a slice of the 64-byte array
var a_clone = a; // creates a copy - the structure doesn't use any internal pointers

1.3 MultiArrayList

一个多维动态数组(MultiArrayList)存储一个结构体或带标签的联合体类型的列表。它不像普通的列表那样只存储单一的项目列表,而是为结构体的每个字段或联合体的标签和裸数据分别存储独立的列表。这种方式在结构体或联合体有填充(padding)的情况下可以节省内存,并且如果计算只需要某些字段或仅仅需要标签时,能够改善缓存的使用效率。访问字段的主要API是slice()函数,该函数计算出每个字段数组的起始指针。从slice结果中,你可以通过调用.items(.)来获取字段值的切片。对于联合体,你可以调用.items(.tags)或.items(.data)。

multi_array_list.zig代码解读icon-default.png?t=N7T8https://ratfactor.com/zig/stdlib-browseable2/multi_array_list.zig.html

1.4 ArrayHashMap 

一个具有默认哈希和等值函数的ArrayHashMap。有关哈希和等值实现的描述,请参阅AutoContext。

array_hash_map.zig - Zig standard libraryicon-default.png?t=N7T8https://ratfactor.com/zig/stdlib-browseable2/array_hash_map.zig.html

1.5 BufMap

BufMap在键值对进入映射之前会复制它们,并在键值对被移除时释放它们。

buf_map.zig - Zig standard libraryicon-default.png?t=N7T8https://ratfactor.com/zig/stdlib-browseable2/buf_map.zig.html

	
test "BufMap" {const allocator = std.testing.allocator;var bufmap = BufMap.init(allocator);defer bufmap.deinit();try bufmap.put("x", "1");try testing.expect(mem.eql(u8, bufmap.get("x").?, "1"));try testing.expect(1 == bufmap.count());try bufmap.put("x", "2");try testing.expect(mem.eql(u8, bufmap.get("x").?, "2"));try testing.expect(1 == bufmap.count());try bufmap.put("x", "3");try testing.expect(mem.eql(u8, bufmap.get("x").?, "3"));try testing.expect(1 == bufmap.count());bufmap.remove("x");try testing.expect(0 == bufmap.count());try bufmap.putMove(try allocator.dupe(u8, "k"), try allocator.dupe(u8, "v1"));try bufmap.putMove(try allocator.dupe(u8, "k"), try allocator.dupe(u8, "v2"));
}

1.6 BufSet

BufSet是一个字符串集合。在内部,BufSet会复制字符串,且永远不会接管传递给它的字符串的所有权。

https://ratfactor.com/zig/stdlib-browseable2/buf_set.zig.htmlicon-default.png?t=N7T8https://ratfactor.com/zig/stdlib-browseable2/buf_set.zig.html

test "BufSet" {var bufset = BufSet.init(std.testing.allocator);defer bufset.deinit();try bufset.insert("x");try testing.expect(bufset.count() == 1);bufset.remove("x");try testing.expect(bufset.count() == 0);try bufset.insert("x");try bufset.insert("y");try bufset.insert("z");
}

 1.7 ComptimeStringMap

编译时优化的字符串映射,针对少量差异较大的字符串键集进行了优化。它的工作原理是在编译时按长度对键进行分类,而在运行时仅检查相同长度的字符串。

kvs_list期望一个由struct { []const u8, V }(键值对)元组组成的列表。如果你的V类型是void,那么你可以传递struct { []const u8 }(仅包含键)的元组。

test "ComptimeStringMap list literal of list literals" {const map = ComptimeStringMap(TestEnum, .{.{ "these", .D },.{ "have", .A },.{ "nothing", .B },.{ "incommon", .C },.{ "samelen", .E },});try testMap(map);
}

comptime_string_map.zig - Zig standard libraryicon-default.png?t=N7T8https://ratfactor.com/zig/stdlib-browseable2/comptime_string_map.zig.html

1.8  Enum

这个模块包含了用于处理枚举(enums)的工具和数据结构。例子特别多,具体需要按需求自己 熟悉。

enums.zig - Zig standard libraryicon-default.png?t=N7T8https://ratfactor.com/zig/stdlib-browseable2/enums.zig.html

http://www.dtcms.com/wzjs/3565.html

相关文章:

  • 广州开发app网站自然优化
  • 诸暨市建设局官方网站有没有免费推广平台
  • 企业网站怎么做才能留住客户淘宝推广方法有哪些
  • 手机网站建设价钱是多少搜索引擎优化简历
  • 网站制作app新闻头条今日要闻10条
  • 长春优惠做网站seo扣费系统源码
  • 带网站的电话北京it培训机构哪家好
  • django电影网站开发百度网盟推广
  • 网站建设和网络推广外包服务商网络营销策划书总结
  • 北京网络seo站长之家 seo查询
  • 北京网易公司是做什么的seo咨询常德
  • 昆明中小企业网站建设俄国搜索引擎yandex入口
  • 胶州收电脑号码是多少合肥网络优化公司有几家
  • 商品网站开发需求表百度扫一扫网页版
  • wordpress媒体库子目录天津百度推广排名优化
  • 网站开发到上线的流程14个seo小技巧
  • 做网站的服务器用什么系统seo推广营销公司
  • 基础做网站凡科建站小程序
  • 网站赌博二维码收钱怎么做的公司查询
  • 免费下载软件全免费西安seo顾问培训
  • 关于我们做网站网站发布与推广方案
  • 手机网站模板更改吗太原网站快速排名优化
  • 马克杯网站开发产品市场营销策划书
  • 企业商务网站的技术初学seo网站推广需要怎么做
  • 网站域名销售seo推广公司价格
  • 云计算存储网站建设安全最新新闻热点事件2024
  • 最专业的网站建设团队广告联盟接单平台
  • 有哪些免费网站可以做店招谷歌外贸seo
  • 官方网站建设 搜搜磐石网络百度搜索引擎投放
  • 濮阳网站公司上海seo网站优化