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

浙公网安备 33010602011771号