c++vector对象初始化
2016-08-15 23:24
337 查看
C++vector对象初始化
因为最近在准备C++,用到了vector STL,但是发现自己完全不太会用,所以上网查了一下一些常用的初始化方法(其实就是把vector当做一个安全的动态数组即可),其他使用方法基本类似于C的数组,主要是初始化有些多元化,这里详细列举一下。下面代码用到的两个iter量声明
vector<int>::iterator int_ite; vector<string>::iterator string_ite;
申请n个元素(或者进行初始化)
//vector<T> v(n)形式,v包含n 个元素 vector<int> ivec1(10); //vector<T> v(n,i)形式,v包含n 个值为 i 的元素 vector<int> ivec(10,0); for(int_ite=ivec.begin ();int_ite!=ivec.end ();int_ite++) cout<<"ivec: "<<*int_ite<<endl;
拷贝一份已有的vector
//vector<T> v(v1)形式,v是v1 的一个副本 vector<int> ivec1(ivec); for(int_ite=ivec1.begin ();int_ite!=ivec1.end ();int_ite++) cout<<"ivec1: "<<*int_ite<<endl;
这里ivec是一个已有的vector,那么这种初始化方式会拷贝一份ivec,其为ivec1
用int/string数组初始化vector数组
//数组初始化vector int iarray[]={1,2,3,4,5,6,7,8,9,0}; //count: iarray数组个数 size_t count=sizeof(iarray)/sizeof(int); //int数组初始化 ivec3 vector<int> ivec3(iarray,iarray+count); for(int_ite=ivec3.begin ();int_ite!=ivec3.end ();int_ite++) cout<<"ivec3: "<<*int_ite<<endl; //string数组初始化 svec1 string word[]={"ab","bc","cd","de","ef","fe"}; //s_count: word数组个数 size_t s_count=sizeof(word)/sizeof(string); //string数组初始化 svec1 vector<string> svec1(word,word+s_count); for(string_ite=svec1.begin ();string_ite!=svec1.end ();string_ite++) cout<<"svec1: "<<*string_ite<<endl;
这里主要是注意vector初始化的第二个入参是数组(指针)+数组长度
应该就是指到数组尾,然后把这段地址空间的全部拷贝进vector……
使用back_inserter函数初始化vector
其实按照C++的定义来说,这个不算初始化……应该是赋值。。。//用 back_inserter 函数 vector<int> ivec4; //空对象 fill_n(back_inserter(ivec4),10,3); //10个3 填充ivec4. for(int_ite=ivec4.begin ();int_ite!=ivec4.end ();int_ite++) cout<<"ivec4: "<<*int_ite<<endl; }
相关文章推荐
- c++积累(4):vector对象初始化和大小、容量
- c++用整型数组初始化一个vector对象
- c++ 初始化两个vector对象,
- C++对象的直接初始化和复制初始化
- 快乐学C++:(5) 对象的初始化
- C++对象初始化以及运算符重载
- C++ 计算一个线段长度,两个端点的坐标值分别为(100,200)(200,300)。要求:定义一个CLine类,属性是CPoint对象。(初始化参数列表)
- C++ 几种对象数组初始化(带参数的构造函数)
- C++对象的初始化
- [笔试题 9][c/c++]关于成员变量,对象成员的初始化问题
- 关于C++项目指针对象未被初始化的问题(0xcdcdcd)
- 深入探索C++对象模型笔记之五 —— 构造函数语意学 (成员们的初始化队伍 Member Initialization List)
- [C++再学习系列] 全局或静态变量(对象)的初始化
- c++ 中 local static 对象何时被初始化
- c++之旅---对象的定义与初始化(3)
- Effective c++ 学习笔记——条款04:确定对象被使用前已先被初始化
- 个人研究《数据结构与算法分析-C++描述》Vector实现的问题,new与初始化
- C++ 对象初始化和赋值
- [C++再学习系列] 跨编译单元的对象初始化
- 操作符的重载以及数组/vector对象的初始化