vector<int> v1;//创建一个空的向量v1 vector<int> v2(10);//创建一个向量v2,其已开辟10个元素的空间,相当于int v[10]; vector<int> v3(10,5);//创建一个向量v3,其已开辟10个元素的空间并全部赋值为5 vector<int> v4(v3.begin(),v3.end());//创建一个向量v3,其内容为向量v3的内容 vector...
vector不是一种数据类型,而是一种类模板,可以用来定义任意多种数据类型。 vector<int> ivec;//int 类型vector<Sales_item> Sales_vec;//Sales_item 类型 2、vector对象的定义和初始化 vector<T> v1;//vector保存类型为T的对象,默认构造函数v1为空vector<T>v2(v1);//v2是v1的一个副本vector<T>v3(n,...
vector<int> a;vector<int>b(a);vector<int>c(10,23);vector<string>s1(10,"null");vector<string>s2(10); vector<string> s3 = {10,"hi!"};// 重点关注vector<string> s4 = {"10","hi!"};// 重点关注pr_int_vector(a);pr_int_vector(b);pr_int_vector(c);pr_str_vector(s1);pr_s...
int (* Add)(Vector *AL,const void *newval); void *(* GetElement)(const Vector *AL,size_t idx); int (* EraseAt)(Vector *AL,size_t idx); int (* ReplaceAt)(Vector *AL,size_t idx,void *newval); int (* IndexOf)(const Vector *AL,const void *data,void *ExtraArgs,size_t *...
定义一个长宽高为2x3x5的立方体容器,每个元素为0,我们得到如下代码,结果编译通过。 //长宽高:2*3*5 vector<vector<vector<int>>> cube(5, vector<vector<int>>(3, vector<int>(2, 0))); 画的很简陋,随便欣赏一下。 补充内容: 1.声明一个简单int容器 ...
//vector容器 //定义 vector<int> ve1 = {7,8,9,4,5,6,1,2,3};//一维变长int型数组 vector<int> ve2[100];//一维定长,一维不定长,可以理解为100个vector容器 vector<vector<int>> ve3;//二维都是变长的int型数组 //访问(遍历)方式 vector<int>::iter...
1.1 vector(数组)封装动态数组的顺序容器。 1.2 queue(队列)是容器适配器,他是FIFO(先进先出)的数据结构。 1.3 deque(双端队列)是有下标顺序容器,它允许在其首尾两段快速插入和删除。 1.4 set(集合)集合基于红黑树实现,有自动排序的功能,并且不能存放重复的元素。
list有一个重要的性质,插入操作和删除操作都不会造成原有list迭代器的失效,这在vector是不成立的. 总结: STL中list和vector是两个最常被使用的容器,各有优缺点。 所以无论如何,务必掌握好这两个容器。 2.list构造函数 list<T> lst; //list采用模板类实现,默认构造 ...
vector是一个容器,可以按动态数组去理解: std::vector<int> array; // 创建int类型的空容器 array.push_back(1); // 向末尾插入数据 array.pop_back(); // 删除末尾数据 array.size(); // 返回大小 map kv映射,键值对存储,相当于python的字典,json的对象,内部实现使用红黑树: std::map<std::strin...
存储位置部分:std::array是在栈区分配的,它的大小在编译时已经确定,vector对象存储在堆区。数组可以存储在栈上(自动分配的数组)或堆上(使用new[]或malloc()分配的数组)。 (2.)复制部分:数组需要逐个元素复制,vector和array可以使用拷贝构造函数或赋值操作符实现整个对象的复制。 (3.)vector属于变长的容器,即...