向量

作者: BIGHAI | 来源:发表于2017-05-29 15:56 被阅读0次

vector向量是一种可以动态或“可增长”的数组,被实现为标准库类型Vec<T>。vector总是在堆上分配数据。

1.常规用法

vector将他们的内容以连续存储在堆上,这意味着他们必须在编译时就知道T的大小。但是有些类型不可能再编译时就能够确定其大小,为此你需要保存一个指向该类型的指针:Box类型就适合这种情况。

let v:Vec<i32> = vec![1, 2, 3, 4, 5];
let v2:Vec<i32> = vec![0; 10];//10个i32数据类型的0
  • 访问语法
    要返回特定索引位置的值的话,那么使用[],和数组类似;元组使用.
let v:Vec<i32> = vec![1,2,3,4,5];
println!("{}", v[2]);
  • 需要注意的地方:索引的数据类型必须为usize。下面举一个例子:
fn main(){
  let v:Vec<i32> = vec![1,2,3];
  let index:usize = 2;
  println!("{}", v[index]);
}

如果你尝试利用一个非usize的索引去获取向量的值的话,那么将会抛出一个错误。

  • 迭代:可以利用for...in...来迭代一个vector里面的元素。
var v:Vec<i32> = vec![1,2,3,4,5];
for value in v{
    println!("{}", value);
}

需要注意的是,在使用vector的所有权遍历之后再次遍历它会出错。但是我们可以多次使用vector变量的引用进行多次遍历。

var v:Vec<i32> = vec![1,2,3,4];
for value in v{
    println!("{}", value);
}
for value2 in v{
    println!("{}", value2);//error:use of moved value: `v`
}

但是对他的引用进行多次遍历还是可以的:

var v:Vec<i32> = vec![1,2,3,4];
for value in &v{
    println!("{}", value);
}
for value in &v{
    println!("{}",value);
}

END

相关文章

  • 向量空间相关概念总结-向量空间

    什么是向量空间 特点:① 包含向量比如向量组,而且向量组内部的向量维数相同② 包含向量的运动向量的加法->生成新的...

  • OpenGL之3D数学

    向量 向量是既有大小又有方向的量。 零向量与单位向量 模等于0的向量为零向量,模等于1的向量叫做单位向量。注意零向...

  • 3D数学基础及图形开发(二)向量

    向量 向量的基本知识 行向量与列向量 向量分为1维,2维,3维,甚至多维向量,1维的向量是标量。 零向量是唯一一个...

  • OpenGL-向量 & 矩阵

    1.向量 1.1 向量的写法 向量又分为横向量与列向量,横向力与列向量的写法如下图: 1.2 负向量表达式: 如上...

  • Day5--学习笔记--smartyy

    1.向量 向量分为:字符型向量,逻辑型向量,数字型向量向量中所有的元素都必须是同一属性 向量的创建函数:c()是创...

  • R语言向量计算的数学函数汇总2021.1.21

    一、向量函数 1.数学函数 sum(向量名):求和 max(向量名):返回向量最大值 min(向量名):返回向量最...

  • OpenGL -- 向量与矩阵

    向量 单位向量 长度为1的向量,向量长度通过下列公式计算 向量 点乘 点乘只能在两个向量之间进行 两个单位向量进行...

  • OpenGL 向量 矩阵 变换

    向量 单位向量 标量:只有大小,例如:1,2,3...向量:既有大小又有方向。单位向量:向量长度(向量的模)为1的...

  • P20向量

    向量 行向量,列向量 ,可以通过转置获得 向量的线性关系 定义线性组合:是维向量如果 存在 使得注意,是维的向量 ...

  • OpenGL-向量与矩阵

    向量与矩阵的应用场景和相关方法 向量 向量:(也称为欧几里得向量、几何向量、矢量),指具有大小(magnitude...

网友评论

      本文标题:向量

      本文链接:https://www.haomeiwen.com/subject/ueehfxtx.html