c++ 常见问题之 vector 和数组

初始化vector 对象:

vector<T> v1  v1 为空vector
vector<T> v2(v1)  
vector<T> v2 = v1
vector<T> v3(n,val)
vector<T> v4(n)
vector<T> v5 {a,b,c..}
vector<T> v5 = {a,b,c..}

  vector<int> s(10,2) //10个元素每个元素是2

  vector<int> s{10,2}//2个元素 10和2

  vector操作:

v.empty()
v.size()
v.push_back()
v[n]
v1 == v2
v1 = {a,b,c}

 迭代器操作:

vector<int> r = {1,2,3,4,5,6};
vector<int>::iterator it;
for(it = r.begin();it!= r.end();it++)
    cout << *it << endl;

数组:

 数组a[d] d必须是常量表达式 unsigned cnt = 42; int a[cnt] //错误  string strs[get_size()] //错误,当get_size是 constexpr时正确

char a3[] = "c++";  a3的长度为4 还有空字符‘\0’

数组不允许将数组内容拷贝给其他数组作为初始值,也不能用数组为其他数组赋值

int a[] = {1,2,3};
int a2[] = a;//错误
a2 = a; //错误
int len = sizeof(a)/sizeof(a[0]);

复杂数组:默认情况类型修饰从右往左

int *ptr [10]; // ptr是含有10个int*的数组
 int &refs[10]; // 错误 不存在引用数组
 int (*parray)[10] = &arr; // parray 是个指针,指向大小为10的数组,数组中的类型为int
 int (&arrtest)[10] = arr; //arrtest 是个引用,引用类型为大小为10的数组,数组中的类型为int

递增

int j = 0,i;
i = ++j; // i=1,j=1
i = j++; // i=1,j=2

  

 

posted @ 2016-07-17 19:22  路萧  阅读(3800)  评论(0编辑  收藏  举报