Struct alloc::slice::IterMut 1.0.0[−][src]
pub struct IterMut<'a, T> where
T: 'a, { /* fields omitted */ }
Expand description
Implementations
将基础数据视为原始数据的子切片。
为避免创建 &mut
引用该别名,将强制使用该迭代器。
Examples
基本用法:
// 首先,我们声明一个具有 `iter_mut` 方法的类型以获取 `IterMut` 结构体 (此处为 `&[usize]`) : let mut slice = &mut [1, 2, 3]; { // 然后,我们得到迭代器: let mut iter = slice.iter_mut(); // 我们转到下一个元素: iter.next(); // 因此,如果我们在此处打印 `into_slice` 方法返回的内容,则得到 "[2, 3]": println!("{:?}", iter.into_slice()); } // 现在,让我们修改切片的值: { // 首先,我们返回迭代器: let mut iter = slice.iter_mut(); // 我们更改 `next` 方法返回的切片的第一个元素的值: *iter.next().unwrap() += 1; } // 现在切片是 "[2, 2, 3]": println!("{:?}", slice);Run
将基础数据视为原始数据的子切片。
为了避免创建 &mut [T]
引用该别名,返回的切片借用了应用了该方法的迭代器的生命周期。
Examples
基本用法:
let mut slice: &mut [usize] = &mut [1, 2, 3]; // 首先,我们得到迭代器: let mut iter = slice.iter_mut(); // 因此,如果我们检查 `as_slice` 方法在这里返回的内容,则得到 "[1, 2, 3]": assert_eq!(iter.as_slice(), &[1, 2, 3]); // 接下来,我们转到切片的第二个元素: iter.next(); // 现在 `as_slice` 返回 "[2, 3]": assert_eq!(iter.as_slice(), &[2, 3]);Run
Trait Implementations
🔬 This is a nightly-only experimental API. (iter_advance_by
#77404)
recently added
通过 n
元素从后向前推进迭代器。 Read more
这是 Iterator::try_fold()
的反向版本: 它从迭代器的后面开始接收元素。 Read more
一种迭代器方法,从后面开始,将迭代器的元素减少为单个最终值。 Read more
type Item = &'a mut T
type Item = &'a mut T
被迭代的元素的类型。
在迭代器的每个元素上调用一个闭包。 Read more
测试迭代器的每个元素是否与谓词匹配。 Read more
测试迭代器的任何元素是否与谓词匹配。 Read more
搜索满足谓词的迭代器的元素。 Read more
将函数应用于迭代器的元素,并返回第一个非无结果。 Read more
在迭代器中搜索元素,并返回其索引。 Read more
从右侧搜索迭代器中的元素,并返回其索引。 Read more
🔬 This is a nightly-only experimental API. (iter_advance_by
#77404)
recently added
通过 n
元素使迭代器前进。 Read more
fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter> where
U: IntoIterator<Item = Self::Item>,
[src]
fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter> where
U: IntoIterator<Item = Self::Item>,
[src]接受两个迭代器,并依次在两个迭代器上创建一个新的迭代器。 Read more
将两个迭代器压缩为成对的单个迭代器。 Read more
🔬 This is a nightly-only experimental API. (iter_intersperse
#79524)
recently added
创建一个新的迭代器,该迭代器将 separator
的副本放置在原始迭代器的相邻项之间。 Read more
fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G> where
G: FnMut() -> Self::Item,
[src]
fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G> where
G: FnMut() -> Self::Item,
[src]🔬 This is a nightly-only experimental API. (iter_intersperse
#79524)
recently added
创建一个新的迭代器,该迭代器将 separator
生成的项放在原始迭代器的相邻项之间。 Read more
获取一个闭包并创建一个迭代器,该迭代器在每个元素上调用该闭包。 Read more
创建一个迭代器,该迭代器使用闭包确定是否应产生元素。 Read more
创建一个同时过滤和 maps 的迭代器。 Read more
fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P> where
P: FnMut(&Self::Item) -> bool,
[src]
fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P> where
P: FnMut(&Self::Item) -> bool,
[src]fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P> where
P: FnMut(&Self::Item) -> bool,
[src]
fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P> where
P: FnMut(&Self::Item) -> bool,
[src]创建一个迭代器,该迭代器根据谓词产生元素。 Read more
🔬 This is a nightly-only experimental API. (iter_map_while
#68537)
recently added
创建一个迭代器,该迭代器均基于谓词和 maps 产生元素。 Read more
创建一个迭代器,其工作方式类似于 map,但是将嵌套的结构展平。 Read more
创建一个可简化嵌套结构体的迭代器。 Read more
对迭代器的每个元素执行某些操作,将值传递给它。 Read more
#[must_use = "if you really need to exhaust the iterator, consider `.for_each(drop)` instead"]fn collect<B>(self) -> B where
B: FromIterator<Self::Item>,
[src]
#[must_use = "if you really need to exhaust the iterator, consider `.for_each(drop)` instead"]fn collect<B>(self) -> B where
B: FromIterator<Self::Item>,
[src]将迭代器转换为集合。 Read more
使用一个迭代器,从中创建两个集合。 Read more
fn partition_in_place<'a, T, P>(self, predicate: P) -> usize where
Self: DoubleEndedIterator<Item = &'a mut T>,
T: 'a,
P: FnMut(&T) -> bool,
[src]
fn partition_in_place<'a, T, P>(self, predicate: P) -> usize where
Self: DoubleEndedIterator<Item = &'a mut T>,
T: 'a,
P: FnMut(&T) -> bool,
[src]🔬 This is a nightly-only experimental API. (iter_partition_in_place
#62543)
new API
根据给定的谓词,对迭代器的元素进行就地重新排序,以使所有返回 true
的元素都在所有返回 false
的元素之前。
返回找到的 true
元素的数量。 Read more
🔬 This is a nightly-only experimental API. (iter_is_partitioned
#62544)
new API
检查此迭代器的元素是否根据给定的谓词进行了分区,以便所有返回 true
的元素都在所有返回 false
的元素之前。 Read more
一个迭代器方法,它只要成功返回就应用函数,并产生单个最终值。 Read more
fn try_for_each<F, R>(&mut self, f: F) -> R where
F: FnMut(Self::Item) -> R,
R: Try<Output = ()>,
1.27.0[src]
fn try_for_each<F, R>(&mut self, f: F) -> R where
F: FnMut(Self::Item) -> R,
R: Try<Output = ()>,
1.27.0[src]一个迭代器方法,该方法将一个容易犯错的函数应用于迭代器中的每个项,在第一个错误处停止并返回该错误。 Read more
通过应用操作将每个元素 fold
到一个累加器中,返回最终结果。 Read more
通过重复应用归约运算,将元素缩减为一个。 Read more
🔬 This is a nightly-only experimental API. (try_find
#63178)
new API
将函数应用于迭代器的元素,并返回第一个真结果或第一个错误。 Read more
返回给出指定函数最大值的元素。 Read more
返回给出相对于指定比较函数的最大值的元素。 Read more
返回给出指定函数中最小值的元素。 Read more
返回给出相对于指定比较函数的最小值的元素。 Read more
反转迭代器的方向。 Read more
将成对的迭代器转换为一对容器。 Read more
创建一个迭代器,该迭代器将复制其所有元素。 Read more
创建一个迭代器,该迭代器将克隆所有元素。 Read more
Lexicographically 将此 Iterator
的元素与另一个元素进行比较。 Read more
fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering where
I: IntoIterator,
F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Ordering,
[src]
fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering where
I: IntoIterator,
F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Ordering,
[src]Lexicographically 就指定的比较函数而言,将此 Iterator
的元素与另一个元素进行比较。 Read more
fn partial_cmp<I>(self, other: I) -> Option<Ordering> where
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
1.5.0[src]
fn partial_cmp<I>(self, other: I) -> Option<Ordering> where
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
1.5.0[src]Lexicographically 将此 Iterator
的元素与另一个元素进行比较。 Read more
fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering> where
I: IntoIterator,
F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,
[src]
fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering> where
I: IntoIterator,
F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,
[src]Lexicographically 就指定的比较函数而言,将此 Iterator
的元素与另一个元素进行比较。 Read more
fn eq<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialEq<<I as IntoIterator>::Item>,
1.5.0[src]
fn eq<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialEq<<I as IntoIterator>::Item>,
1.5.0[src]fn eq_by<I, F>(self, other: I, eq: F) -> bool where
I: IntoIterator,
F: FnMut(Self::Item, <I as IntoIterator>::Item) -> bool,
[src]
fn eq_by<I, F>(self, other: I, eq: F) -> bool where
I: IntoIterator,
F: FnMut(Self::Item, <I as IntoIterator>::Item) -> bool,
[src]fn ne<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialEq<<I as IntoIterator>::Item>,
1.5.0[src]
fn ne<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialEq<<I as IntoIterator>::Item>,
1.5.0[src]fn lt<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
1.5.0[src]
fn lt<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
1.5.0[src]fn le<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
1.5.0[src]
fn le<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
1.5.0[src]fn gt<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
1.5.0[src]
fn gt<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
1.5.0[src]fn ge<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
1.5.0[src]
fn ge<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
1.5.0[src]🔬 This is a nightly-only experimental API. (is_sorted
#53485)
new API
检查此迭代器的元素是否使用给定的比较器函数进行排序。 Read more
fn is_sorted_by_key<F, K>(self, f: F) -> bool where
F: FnMut(Self::Item) -> K,
K: PartialOrd<K>,
[src]
fn is_sorted_by_key<F, K>(self, f: F) -> bool where
F: FnMut(Self::Item) -> K,
K: PartialOrd<K>,
[src]🔬 This is a nightly-only experimental API. (is_sorted
#53485)
new API
检查此迭代器的元素是否使用给定的键提取函数进行排序。 Read more