String 如何交换向量中不可复制的元素?
我想交换向量的字符串元素String 如何交换向量中不可复制的元素?,string,vector,rust,swap,String,Vector,Rust,Swap,我想交换向量的字符串元素 let mut v_sa: Vec<String> = vec![]; ... let temp_a = v_sa_ib[j]; v_sa_ib[j] = v_sa_ib[j+1]; v_sa_ib[j+1] = temp_a; 它适用于整数,但不适用于字符串。我还尝试创建第二个向量temp_b,该向量与temp_a的类型相同,并填充它,而不是交换,但我总是遇到相同的错误:该值的类型必须在此上下文中已知 如何修复它?您可以使用直接交换两个元素: v_sa_
let mut v_sa: Vec<String> = vec![];
...
let temp_a = v_sa_ib[j];
v_sa_ib[j] = v_sa_ib[j+1];
v_sa_ib[j+1] = temp_a;
它适用于整数,但不适用于字符串。我还尝试创建第二个向量temp_b,该向量与temp_a的类型相同,并填充它,而不是交换,但我总是遇到相同的错误:该值的类型必须在此上下文中已知
如何修复它?您可以使用直接交换两个元素:
v_sa_ib(j, j+1);
还有一个名为的通用交换函数,但在这里很难使用,因为要获得两个可变引用,同一个Vec的两个不同元素非常复杂
它与整数一起工作的原因是整数实现了复制特性,因此Rust可以自动创建新副本。字符串引用向量如何,只需更改引用?已尝试但未成功错误:无法移出索引内容