Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 如何交换向量中不可复制的元素?_String_Vector_Rust_Swap - Fatal编程技术网

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可以自动创建新副本。

字符串引用向量如何,只需更改引用?已尝试但未成功错误:无法移出索引内容