首页 > 其他分享 >数组扩容golang

数组扩容golang

时间:2024-03-15 17:49:19浏览次数:21  
标签:扩容 arr cap unsafe which1 golang len 数组 pointer

package main

import (
	"fmt"
	"unsafe"
)

func main() {
	which := make([]byte, 0)
	which = append(which, []byte("123")...)
	which1 := which
	fmt.Printf("which: %s  	var pointer :%p	 	arr pointer %p 	cap: %d 	 len:%d,		which1: %s  			var pointer :%p 	arr pointer %p 	cap: %d  len:%d\n",
		which, &which, unsafe.Pointer(&which[0]), cap(which), len(which), which1, &which1, unsafe.Pointer(&which1[0]), cap(which1), len(which1))

	which = append(which, []byte("456")...)
	fmt.Printf("which: %s  	var pointer :%p	 	arr pointer %p 	cap: %d 	 len:%d,		which1: %s  			var pointer :%p 	arr pointer %p 	cap: %d  len:%d\n",
		which, &which, unsafe.Pointer(&which[0]), cap(which), len(which), which1, &which1, unsafe.Pointer(&which1[0]), cap(which1), len(which1))

	which1 = append(which1, []byte("789")...)
	fmt.Printf("which: %s  	var pointer :%p	 	arr pointer %p 	cap: %d 	 len:%d,		which1: %s  		var pointer :%p 	arr pointer %p 	cap: %d  len:%d\n",
		which, &which, unsafe.Pointer(&which[0]), cap(which), len(which), which1, &which1, unsafe.Pointer(&which1[0]), cap(which1), len(which1))

	which1 = append(which1, []byte("123")...)
	fmt.Printf("which: %s  	var pointer :%p	 	arr pointer %p 	cap: %d 	 len:%d,		which1: %s  		var pointer :%p 	arr pointer %p 	cap: %d  len:%d\n",
		which, &which, unsafe.Pointer(&which[0]), cap(which), len(which), which1, &which1, unsafe.Pointer(&which1[0]), cap(which1), len(which1))
}


标签:扩容,arr,cap,unsafe,which1,golang,len,数组,pointer
From: https://www.cnblogs.com/guanchaoguo/p/18075905

相关文章

  • 第一课——树状数组
    前缀和算法可以计算某一个区间的累记和,但是出现修改的时候,前缀和的效率便得不到保障。于是数状数组出现了。出现原因总结——需求从单纯的区间查询变为了单点修改+区间查询。树状数组本文不探讨树状数组的开发过程,这里先给出树状数组的结构:树状数组的设计非常巧妙,它让下标为......
  • Java题目-数组计算-中位数- 圆类的构造-时间计算-学生类设计
    第一题:数组计算题目描述:编写Java程序,计算两个整型数组的和、差、乘积、商的整数部分及大小关系。定义如下:和:两个数组对应元素的和,若元素缺失,则补0;差:第一个数组和第二个数组对应元素的差,若元素缺失,则补0;乘积:两个数组对应元素的积,若元素缺失,则计0;除:第一个数组元素除以第二......
  • 查分数组
    //差分数组工具类classDifference{//差分数组privateint[]diff;/*输入一个初始数组,区间操作将在这个数组上进行*/publicDifference(int[]nums){assertnums.length>0;diff=newint[nums.length];//根据初始......
  • MATLAB学习笔记1.数组运算
    先来介绍两个常用的,在命令行里边输入“clc”,就会清空以上的命令行(也就是这个直接与你对话的地方)的所有内容;但是并不会把已经设置的变量清空,要想清空变量,则需要在命令行中输入“clear”,这样就可以把右侧已经设置的变量都清空掉了。下面是示例输入回车再输入“clear”并输入......
  • 108. 将有序数组转换为二叉搜索树c
    /***Definitionforabinarytreenode.*structTreeNode{*intval;*structTreeNode*left;*structTreeNode*right;*};*/structTreeNode*build(int*nums,inthead,inttail){if(head>tail)returnNULL;intmid=head+(......
  • golang 开发经验
    介绍本篇章将简述,使用golang开发的时候遇到的一些坑,随时更新中~go语法gin框架ctx.Json()细节gin配置路由函数的时候,调用的回调函数,如getBook,在调用c.JSON(200,msg{"hxdyjx",18,})时,单线程情况,必须要执行完,return之前的所有代码才会返回packagemainimport( "g......
  • golang 随机数组的性能对比测试
    最近需要用到随机数,但在随机数的生成方面遇到些问题,如加了seed后反而生成的数组是固定的,没有加是随机的,后面查资料了解到,如果seed值是一样的,序列中的值就固定的,而不加seed时,每次的都是随机的,后面想到如果用来做负载均衡呢,性能又如何。下面是源码:packagebenchimport( ......
  • 26. 删除有序数组中的重复项
    给你一个非严格递增排列的数组nums,请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度。元素的相对顺序应该保持一致。然后返回nums中唯一元素的个数。classSolution{publicintremoveDuplicates(int[]nums){if(nums==n......
  • 稀疏数组与二维数组之间的转换
    稀疏数组介绍:稀疏数组:当一个数组中大部分元素为同一个值时,就可以考虑使用稀疏数组来保存数据节省空间。稀疏数组的原理:1)稀疏数组一共三列,第一行的第一列保存原二维数组的行数,第一行第二列保存原二维数组的列数,第一行第三列保存原二维数组非0数据的个数;2)稀疏数组一共有【原二维......
  • 【算法】二分查找——在排序数组中查找元素的第一个和最后一个位置
    leetcode链接题目描述给你一个按照非递减顺序排列的整数数组nums,和一个目标值target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值target,返回[-1,-1]。你必须设计并实现时间复杂度为O(logn)的算法解决此问题。示例1:输入:nums=[5,......