vector

目录

源码声明:

元素要求:

容器特点:

成员函数:

函数列表:

Member functions

Non-member function overloads

Template specializations

Non-member class specializations

特别注意:


Vector模塑出一个动态数组,但C++ standard并未要求必须以动态数组实作vector。

源码声明:

namespace std
{
    template <class T, class Allocator = allocator<T>>
    class vector;
}

元素要求:

任意型别;可复制;可赋值

容器特点:

支持随机存取;

末段增减元素性能好,前、中端每一次安插或删除元素都需要调用赋值操作符来移动元素

成员函数:

函数列表:

http://www.cplusplus.com/reference/vector/vector/

Member functions

(constructor)

Construct vector (public member function )

(destructor)

Vector destructor (public member function )

operator=

Assign content (public member function )


Iterators:

begin

Return iterator to beginning (public member function )

end

Return iterator to end (public member function )

rbegin

Return reverse iterator to reverse beginning (public member function )

rend

Return reverse iterator to reverse end (public member function )

cbegin C++11

Return const_iterator to beginning (public member function )

cend C++11

Return const_iterator to end (public member function )

crbegin C++11

Return const_reverse_iterator to reverse beginning (public member function )

crend C++11

Return const_reverse_iterator to reverse end (public member function )


Capacity:

size

Return size (public member function )

max_size

Return maximum size (public member function )

resize

Change size (public member function )

capacity

Return size of allocated storage capacity (public member function )

empty

Test whether vector is empty (public member function )

reserve

Request a change in capacity (public member function )

shrink_to_fit C++11

Shrink to fit (public member function )


Element access:

operator[]

Access element (public member function )

at

Access element (public member function )

front

Access first element (public member function )

back

Access last element (public member function )

data C++11

Access data (public member function )


Modifiers:

assign

Assign vector content (public member function )

push_back

Add element at the end (public member function )

pop_back

Delete last element (public member function )

insert

Insert elements (public member function )

erase

Erase elements (public member function )

swap

Swap content (public member function )

clear

Clear content (public member function )

emplace C++11

Construct and insert element (public member function )

emplace_back C++11

Construct and insert element at the end (public member function )


Allocator:

get_allocator

Get allocator (public member function )

 

Non-member function overloads

relational operators

Relational operators for vector (function template )

swap

Exchange contents of vectors (function template )

 

Template specializations

vector<bool>

Vector of bool (class template specialization )

Member functions

The specialization has the same member functions as the unspecialized vector, except data, emplace, and emplace_back, that are not present in this specialization.
It adds the following:

flip

Flip bits (public member function )

swap

Swap containers or elements (public member function )

 

Non-member class specializations

hash<vector<bool>>

Hash for vector (class template specialization )

 

特别注意:

reserve, size, max_size, capacity:

#include <iostream>
#include <vector>
using namespace std;

int main()
{
	vector<int> v = { 1,2,3 };
	v.reserve(10);
	cout << "size: " << v.size() << endl
		<< "max size: " << v.max_size() << endl
		<< "capacity:" << v.capacity() << endl;
	return 0;
}

输出:

size: 3
max size: 4611686018427387903
capacity:10

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);
//to demonstrate initializer list (3)
#include <iostream>
#include <vector>
using namespace std;

int main()
{
	vector<int> v1;
	auto v2 = { 1,2,3 };
	v1.assign(v2);
	return 0;
}

emplace_back, push_back:

emplace_back只调用构造函数;push_back还要调用拷贝构造函数或移动构造函数

at:

唯一进行下标检查的函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值