C++ - vector

这里主要是记录一些我在学习过程中认为需要特别注意的地方。

vector的initialization。

Conventional STL:

int arr[] = {16,2,77,29};
vector<int> vec (arr, arr + sizeof(arr) / sizeof(arr[0]) );

常用的push_back:

v.push_back(SomeValue);

C++ 11中可以使用的赋值语句。

include <vector>
using std::vector
...

vector<int>v = {1, 3, 5, 7};

还有一些引入其他library的方法。

Using boost list_of:

#include <vector>
#include <boost/assign/list_of.hpp>
using std::vector;
...
vector<int> vec = boost::assign::list_of(10)(20)(30);

Using boost assign

#include <vector>
#include <boost/assign/std/vector.hpp>
using std::vector;
...
vector<int> vec;
vec += 10, 20, 30;

后面两个看上去很难记住的样子。

Conventional STL with generic macros:

后面#include <vector>
#define ARRAY_SIZE(ar) (sizeof(ar) / sizeof(ar[0])
#define ARRAY_END(ar) (ar + ARRAY_SIZE(ar))
using std::vector;
...
static const int arr[] = {10,20,30};
vector<int> vec (arr, ARRAY_END(arr));

Conventional STL with a vector initializer macro:

#include <vector>
#define INIT_FROM_ARRAY(ar) (ar, ar + sizeof(ar) / sizeof(ar[0])
using std::vector;
...
static const int arr[] = {10,20,30};
vector<int> vec INIT_FROM_ARRAY(arr);

 

posted @ 2018-04-15 09:22  吹离了空白  阅读(214)  评论(0)    收藏  举报