STL vector总结(五)Modifiers(38)

这里是vector的所有构造方法,成员方法的一些总结,具体的可以详看后面的链接。

public member function

<vector>

std::vector::assign

range (1)
template <class InputIterator>
  void assign (InputIterator first, InputIterator last);
fill (2)
void assign (size_type n, const value_type& val);
initializer list (3)
void assign (initializer_list<value_type> il);

给vector重新分配新的内容,替换现有的内容,并修改他的大小。

在版本(1)中的范围,新的元素是从范围first到last的复制,顺序也是相同的。

在第二个请情况下,新的容器一共有n个元素,每一个元素都初始化为val的拷贝。

在列表初始化版本(3)中,新的元素的值时从初始化列表中依次复制过来的。

Parameters

first, last

定义在同一个序列的输入型迭代器,分别标示了起始位置以及结束位置,包括所有的在first和last范围内的所有元素,包括first指向的元素但不包括last指向的元素。


该函数的模版参数InputIterator应该是一个输入迭代器。其指向一个能被value_type对象构造的元素。

n

容器新的大小。

val

填满容器的值。容器内的每一个元素都将从val中拷贝而来。


类型为元素类型,由vector的模版参数指定。

il

一个初始化列表。编译器将从initializer_list装饰器自动构造其元素。

其元素类型为容器元素类型。由vector模版定义.

Return value

none

原文地址:http://blog.csdn.net/qq844352155/article/details/38583529

———————————————————————————————————————————————————

public member function

<vector>

std::vector::push_back

void push_back (const value_type& val);
void push_back (value_type&& val);

该函数将一个新的元素加到vector的最后面,位置为当前最后一个元素的下一个元素,新的元素的值是val的拷贝(或者是移动拷贝).

该方法可以快速有效率地在数组size范围内增长元素,除非当增长的元素个数大小超出了vector的ccapacity的时候才会发生重分配。

Parameters

val

新元素的值。

类型由vector的模版参数指定。

Return value

none

原文地址:http://blog.csdn.net/qq844352155/article/details/38553845

———————————————————————————————————————————————————

public member function

<vector>

std::vector::pop_back

void pop_back();

可以高效地移除vector中的最后一个元素.

将销毁并移除该元素。

Parameters

none

Return value

none

原文地址:http://blog.csdn.net/qq844352155/article/details/38611555

———————————————————————————————————————————————————

public member function

<vector>

std::vector::insert

single element (1)
iterator insert (const_iterator position, const value_type& val);
fill (2)
iterator insert (const_iterator position, size_type n, const value_type& val);
range (3)
template <class InputIterator>
iterator insert (const_iterator position, InputIterator first, InputIterator last);

move (4)
iterator insert (const_iterator position, value_type&& val);
initializer list (5)
iterator insert (const_iterator position, initializer_list<value_type> il);

通过在position的前面插入元素使vector增长,这是一种高效的插入元素的方式。

Parameters

position
position是新元素插入的位置.
iterator是一个随机访问迭代器。
val
val是插入元素的值(通过拷贝或者是移动构造)
其类型和容器内元素类型一致。由vector模版参数决定。
n
n是插入元素的数目。每一个元素的值都从val中拷贝而来。
n是以俄国unsigned integral.
first, last
指定范围内的迭代器。将从该范围([first,last))依次顺序地拷贝其元素插入到指定位置(position)的vector.
需要注意的是该范围包括first到last之间的所有元素,包括first指向的元素,但不包括last指向的元素。
il
一个初始化列表对象,复制其元素到插入位置。
这些对象都自动从初始化列表中构造。
值类型由vector的模版参数指定,和容器内元素类型一致。

Return value

返回值为插入的第一个新元素的位置。

原文地址:http://blog.csdn.net/qq844352155/article/details/38656527

___________________________________________________________________________________________

public member function

<vector>

std::vector::erase

iterator erase (const_iterator position);
iterator erase (const_iterator first, const_iterator last);

从vector中移除单一(position)或者是指定范围内([first,last))的元素。

Parameters

position

一个指向要被擦除的元素的迭代器。


first, last


指示特定范围内将被移除元素位置的迭代器。该范围包括first到last之间的所有元素,包括first指向的元素,但不包括last指向的元素。

Return value

返回值为一个迭代器,其指向被擦除的最后一个元素的下一个位置的元素。

原文地址:http://blog.csdn.net/qq844352155/article/details/38641813

———————————————————————————————————————————————————

public member function

<vector>

std::vector::swap

void swap (vector& x);

与x交换其内容,x的类型要与该vector一样,大小可以不同。

调用该函数之后,存储在该容器内的元素是那些本来在x中的元素,x中的元素是原本存储在该容器中的元素(即交换内容),所有的迭代器,引用以及指针在交换后依旧有效。

Parameters

x

x是另一个将被交换的同类型的vector容器。

Return value

none

原文地址:http://blog.csdn.net/qq844352155/article/details/38686549

———————————————————————————————————————————————————

public member function

<vector>

std::vector::clear

void clear() noexcept;

移除vector内所有元素(并销毁他们),使容器大小为变为0(size而不是capacity)。

Parameters

none

Return value

none

原文地址:http://blog.csdn.net/qq844352155/article/details/38583093

———————————————————————————————————————————————————

public member function

<vector>

std::vector::emplace

template <class... Args>
iterator emplace (const_iterator position, Args&&... args);

Construct and insert element

The container is extended by inserting a new element at position. This new element is constructed in place using args as the arguments for its construction.

通过在指定位置插入一个新的元素以扩展容器,新的元素的值为args或者是元素根据args的值构造。

Parameters

position

新元素插入容器的位置。


args

用于构造器构造新元素的参数。

Return value

返回值是一个指向新插入的元素的iterator。

原文地址:http://blog.csdn.net/qq844352155/article/details/38635465

———————————————————————————————————————————————————

public member function

<vector>

std::vector::emplace_back

template <class... Args>
  void emplace_back (Args&&... args);

在vector的结尾插入一个新的元素,位置为当前最后一个元素的右边,元素的值使用args作为参数传递给其构造函数构造。

Parameters

args
用于构造新元素的参数。

Return value

none

原文地址:http://blog.csdn.net/qq844352155/article/details/38636715

——————————————————————————————————————————————————————————————————

//总结的不好的地方请多多指导,可以在下面留言或者点击左上方邮件地址给我发邮件,指出我的错误以及不足,以便我修改,更好的分享给大家,谢谢。

转载请注明出处:http://blog.csdn.net/qq844352155

author:天下无双

Email:[email protected]

2014-8-27

于GDUT

——————————————————————————————————————————————————————————————————

时间: 2024-11-06 07:39:15

STL vector总结(五)Modifiers(38)的相关文章

STL容器(五)——heap

STL容器(五)--heap 我们可以调用STL中的heap堆,实现建堆和堆排序等操作. 首先,STL中的heap默认构建的是最大堆,程序如下: #include<iostream> #include<algorithm> #include<vector> using namespace std; int main() { int a[]={2, 3, 5, 1, 9, 6}; vector<int> vec(a, a+6); vector<int&g

stl vector 类

目录 [-]说明构造方法例子vector 类中定义了4中种构造函数: · 默认构造函数,构造一个初始长度为0的空向量,如:vector<int> v1; · 带有单个整形参数的构造函数,此参数描述了向量的初始大小. 说明 vector是一种动态数组,是基本数组的类模板.其内部定义了很多基本操作. #include <vector> 注意:头文件没有“.h”构造: 这个构造函数还有一个可选的参数,这是一个类型为T的实例,描述了各个向量种各成员的初始值: 如:vector<int

stl vector自定义类型的去重问题

最近项目遇到一个问题,有关stl vector自定义类型的去重问题. 背景:1.在一个vector中,存在大量元素拥有同一属性,而其他属性我们不关心,为了减少数据包大小,需要去重 2.此自定义类型不能去重载==操作符(公司代码规范等原因) 3.正常情况下,vector中对象是有序的(拥有同一属性的元素排在一起)                /*引起误解,后补充*/ 于是,花了十分钟撸出了下列代码原型. 1 #include <iostream> 2 #include <vector&g

STL vector中的rbegin方法(5)

public member function <vector> std::vector::rbegin C++98 C++11 reverse_iterator rbegin() noexcept; const_reverse_iterator rbegin() const noexcept; Return reverse iterator to reverse beginning 返回一个反向的首元素. 例子: #include <iostream> #include <v

C++ STL vector容器学习

STL(Standard Template Library)标准模板库是C++最重要的组成部分,它提供了一组表示容器.迭代器.函数对象和算法的模板.其中容器是存储类型相同的数据的结构(如vector,list, deque, set, map等),算法完成特定任务,迭代器用来遍历容器对象,扮演容器和算法之间的胶合剂. 模板类vector 在计算中,矢量(vector)对应数组,它的数据安排以及操作方式,与array非常类似.在C++中,使用vector模板类时,需要头文件包含#include<v

STL vector用法介绍

介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作.本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用.通过阅读这篇文章读者应该能够有效地使用vector容器,而且应该不会再去使用C类型的动态数组了.   Vector总览 vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象

STL ——vector 学习

STL简介 C++ STL (Standard Template Library标准模板库) 是通用类模板和算法的集合,它提供给程序员一些标准的数据结构的实现如 queues(队列), lists(链表), 和 stacks(栈)等.  C++ STL 提供给程序员以下三类数据结构的实现: 标准容器类   顺序性容器  vector 从后面快速的插入与删除,直接访问任何元素  deque 从前面或后面快速的插入与删除,直接访问任何元素 list 双链表,从任何地方快速插入与删除   关联容器  

STL vector的介绍(1)

尝试下翻译STL里面的一些容易和算法.四级过了,六级刚考.顺便练练自己的英语水平,翻译的不好的地方请大神多多指教哈,方便我改正. 原来均来自:http://www.cplusplus.com/ template < class T, class Alloc = allocator<T> > class vector; // generic template Vector Vectors are sequence containers representing arrays that

C++ stl vector介绍

转自: STL vector用法介绍 介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作.本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用.通过阅读这篇文章读者应该能够有效地使用vector容器,而且应该不会再去使用C类型的动态数组了.   Vector总览 vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被认为是一个容器,是

STL vector

author:Donald-hu    theme:STL vector 介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作.本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用.通过阅读这篇文章读者应该能够有效地使用vector容器,而且应该不会再去使用C类型的动态数组了.   Vector总览 vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.v