Array

-对于Array来说它是固定大小的序列容器,它们包含严格的线性序列排序的特定数量的元素,在其内部来说,数组除数组除保留其包含的元素外不保留其他任何数据(甚至不包括其大小(这是模板参数,固定在编译时))。就存储大小而言,它与使用该语言的括号语法([])声明的普通数组一样有效。此类仅向其添加一层成员和全局函数,因此可以将数组用作标准容器。要知道的是,零大小的数组是有效的,但不应该取消引用 1.Array的模板形式为 template < class T, size_t N > class array; 2.Array的功能函数 array::begin-返回的是迭代器的开始 array::end-返回的是迭代器的末尾 array::rbegin-返回反向迭代器以反向开始 array::rend-返回反向迭代器以方向末尾 array::cbegin-指针指向的const类型,不能进行修改 array::cend-同理 array::data()-有两种形式一种是const,一种是非const,返回的是数组的内容

// array::data
#include <iostream>
#include <cstring>
#include <array>

int main ()
{
  const char* cstr = "Test string";
  std::array<char,12> charray;
  std::memcpy (charray.data(),cstr,12);
  std::cout << charray.data() << '\n';
  return 0;
}
在这里通过:memcpy函数将其定义的cstr复制到定义的数组内
运行结果--Test string

array::max_size-返回的是数组的最大长度

// array::max_size
#include <iostream>
#include <array>

int main ()
{
  std::array<int,10> myints;
  std::cout << "size of myints: " << myints.size() << '\n';
  std::cout << "max_size of myints: " << myints.max_size() << '\n';

  return 0;
}

运行结果为-size of myints: 10
max_size of myints: 10

vector的用法

-向量是表示可以改变大小的数组的序列容器。 与array相比来说,上面所说的一些基本类型都有,vector新增了push_back,insert等一些类型 push_back-往vector最后面加数据

// vector::push_back
#include <iostream>
#include <vector>

int main ()
{
  std::vector<int> myvector;
  int myint;

  std::cout << "Please enter some integers (enter 0 to end):\n";

  do {
    std::cin >> myint;
    myvector.push_back (myint);
  } while (myint);

  std::cout << "myvector stores " << int(myvector.size()) << " numbers.\n";

  return 0;
}

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);

代码实现
// inserting into a vector
#include <iostream>
#include <vector>

int main ()
{
  std::vector<int> myvector (3,100);
  std::vector<int>::iterator it;

  it = myvector.begin();
  it = myvector.insert ( it , 200 );

  myvector.insert (it,2,300);

  // "it" no longer valid, get a new one:
  it = myvector.begin();

  std::vector<int> anothervector (2,400);
  myvector.insert (it+2,anothervector.begin(),anothervector.end());

  int myarray [] = { 501,502,503 };
  myvector.insert (myvector.begin(), myarray, myarray+3);

  std::cout << "myvector contains:";
  for (it=myvector.begin(); it<myvector.end(); it++)
    std::cout << ' ' << *it;
  std::cout << '\n';

  return 0;
}

运行结果myvector contains: 501 502 503 300 300 400 400 200 100 100 100

关于array与vector的更多用法可以从http://www.cplusplus.com/reference/进行学习