提交 f978c772 编写于 作者: F Felix S. Klock II

Incorporated review feedback atop pcwalton's original patches.

(Original PR was #12716; feedback was provided by thestinger and me.)
上级 15d9acc4
......@@ -14,10 +14,10 @@
use cast::{forget, transmute};
use clone::Clone;
use cmp::{Ord, Eq, Ordering, TotalEq, TotalOrd};
use container::Container;
use container::{Container, Mutable};
use default::Default;
use fmt;
use iter::{DoubleEndedIterator, FromIterator, Extendable, Iterator};
use iter::{DoubleEndedIterator, FromIterator, Extendable, Iterator, Rev};
use libc::{free, c_void};
use mem::{size_of, move_val_init};
use mem;
......@@ -68,11 +68,7 @@ pub fn from_fn(length: uint, op: |uint| -> T) -> Vec<T> {
impl<T: Clone> Vec<T> {
pub fn from_slice(values: &[T]) -> Vec<T> {
let mut vector = Vec::new();
for value in values.iter() {
vector.push((*value).clone())
}
vector
values.iter().map(|x| x.clone()).collect()
}
pub fn from_elem(length: uint, value: T) -> Vec<T> {
......@@ -292,9 +288,8 @@ pub fn move_iter(self) -> MoveItems<T> {
}
#[inline]
pub fn move_rev_iter(mut self) -> MoveItems<T> {
self.reverse();
self.move_iter()
pub fn move_rev_iter(self) -> Rev<MoveItems<T>> {
self.move_iter().rev()
}
#[inline]
......@@ -437,9 +432,12 @@ pub fn init<'a>(&'a self) -> &'a [T] {
pub fn as_ptr(&self) -> *T {
self.as_slice().as_ptr()
}
}
impl<T> Mutable for Vec<T> {
/// Clear the vector, removing all values.
#[inline]
pub fn clear(&mut self) {
fn clear(&mut self) {
self.truncate(0)
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册