assign() 对Vector中的元素赋值
void assign( input_iterator start, input_iterator end ); //
void assign( size_type num, const TYPE &val );
capacity() 返回vector所能容纳的元素数量(在不重新分配内存的情况下)
get_allocator() 返回vector的内存分配器
max_size() 返回Vector所能容纳元素数量的最大值(译注:包括可重新分配内存).
reserve() 设置Vector最小的元素容纳数量 函数为当前vector预留至少共容纳size个元素的空间.(译注:实际空间可能大于size)
resize() 改变Vector元素数量的大小 函数改变当前vector的大小为size,且对新创建的元素赋值val
size() 返回Vector元素数量的大小
swap() 交换两个Vector
#include <iostream>
#include <vector>
#include <algorithm>
void show_sequence(std::vector<int>::const_iterator first, std::vector<int>::const_iterator last)
{
std::cout<<"{";
std::copy(first, last, std::ostream_iterator<int>(std::cout, " "));
std::cout<<"}"<<std::endl;
}
void inspect_vector(const std::vector<int>& v)
{
std::cout<<" has "<<v.size()<<" elements: ";
show_sequence(v.begin(), v.end());
}
int main()
{
int v_size,v_capacity,a_size,a_capacity;
std::vector<int> v(10);
std::vector<int> a;
std::cout<<"vector v";
inspect_vector(v);
v_capacity = v.capacity(); //v的容量为10每个元素的值都为0
v_size = v.size(); //v的大小为10每个元素
std::cout<<"vector v 's capacity : "<<v_capacity<<std::endl;
std::cout<<"vector v 's size : "<<v_size<<std::endl<<std::endl;
std::cout<<"vector a";
inspect_vector(a);
a_capacity = a.capacity(); //a的容量为0
a_size = a.size(); //a的大小为0
std::cout<<"vector a 's capacity : "<<a_capacity<<std::endl;
std::cout<<"vector a 's size : "<<a_size<<std::endl<<std::endl;
for (int i=0; i<5; i++)//在v的末尾加5个数字分别为0,1,2,3,4
{
v.push_back(i);
}
a.assign(v.begin(),v.end());//将v中的值全部赋给 a 中的元素
std::cout<<"vector v";
inspect_vector(v);
v_capacity = v.capacity(); //v的容量为大等于20,元素的值为0,0,0,0,0,0,0,0,0,0,0,1,2,3,4
v_size = v.size(); //v的大小为15
std::cout<<"vector v 's capacity : "<<v_capacity<<std::endl;
std::cout<<"vector v 's size : "<<v_size<<std::endl<<std::endl;
std::cout<<"vector a";
inspect_vector(a);
a_capacity = a.capacity(); //a的容量为15,元素的值为0,0,0,0,0,0,0,0,0,0,0,1,2,3,4
a_size = a.size(); //a的大小为15
std::cout<<"vector a 's capacity : "<<a_capacity<<std::endl;
std::cout<<"vector a 's size : "<<a_size<<std::endl<<std::endl;
a.assign(5,99);//将a中前五维的元素赋值为99,a中原来的值将被清空
a_capacity = a.capacity(); //a的容量为15,元素值为99,99,99,99,99
a_size = a.size(); //a的大小为5
std::cout<<"vector a 's capacity : "<<a_capacity<<std::endl;
std::cout<<"vector a 's size : "<<a_size<<std::endl<<std::endl;
v.swap(a); // 交换两个容器里面的值
std::cout<<"vector v";
inspect_vector(v);
v_capacity = v.capacity(); //v的容量为大等于15,元素值为99,99,99,99,99
v_size = v.size(); //v的大小为5
std::cout<<"vector v 's capacity : "<<v_capacity<<std::endl;
std::cout<<"vector v 's size : "<<v_size<<std::endl<<std::endl;
std::cout<<"vector a";
inspect_vector(a);
a_capacity = a.capacity(); //a的容量为大等于20,元素的值为0,0,0,0,0,0,0,0,0,0,0,1,2,3,4
a_size = a.size(); //a的大小为15
std::cout<<"vector a 's capacity : "<<a_capacity<<std::endl;
std::cout<<"vector a 's size : "<<a_size<<std::endl<<std::endl;
return 0;
}
注:灰色部份为输出语句,红色部份为重点,蓝色部份为计算容器的容量和大小.