#include <stdio.h>
#include <vector>
using namespace std;
vector<int> v;
int main(){
v.push_back(1);
v.push_back(3);
v.push_back(2);
v.push_back(5);
v.push_back(4);
v.push_back(7);
int a=v.at(5);
int b=v.at(4);
printf("size:%d\n",v.size());
v.pop_back();
int c =v.at(4);
printf("%d %d %d\n",a,b,c);
printf("size:%d\n",v.size());
for(int i=0;i<10;i++)
v.push_back(i);
for(int i=0;i<10;i++)//方法一
printf("%d ",v[i]);
printf("\n");
//方法二,使用迭代器将容器中数据输出
vector<int>::iterator it;//声明一个迭代器,来访问vector容器,作用:遍历或者指向vector容器的元素
for(it=v.begin();it!=v.end();it++)
printf("%d ",*it);
vector操作以及结构体的初始化结构体的初始化初始化方式1:不带构造函数初始化方式2:使用构造函数vector的一些操作vector是啥?vector的一些操作提前准备声明一个vector添加一个元素删除一个元素获取vector元素vector的排序vector的访问整个代码结构体的初始化结构体的赋值我们还是较为熟练的,直接使用’变量名.属性名’就可以为这个属性赋值了,但是结构体的初始化,还真可能有一些问题。初始化方式1:不带构造函数我们可以通过下面的方式来声明一个A类型的变量a.但是这里的a里面
结构体实例(包括共用体)和类实例的初始化方法完全相同,二者都可以应用于继承层次中。不同点是结构体(包括共用体)默认成员为public,而类默认成员是private型的。
一、若类和结构体所有数据成员均为public型,可采取如下带花括号形式进行初始化。
① 不论值的个数多少,都必须使用花括号定界
② 未指定值的数据成员编译器会自动初始化为默认值
③ 这种初始化对象方式,要求所有数据成员必须为public型
④ 这种初始化对象方式,要求类中不能编写任何构造函数
struct S { //cla
1.vector<int> list1; 默认初始化,最常用
此时,vector为空, size为0,表明容器中没有元素,而且 capacity 也返回 0,意味着还没有分配内存空间。 这种初始化方式适用于元素个数未知,需要在程序中动态添加的情况。
2.vector<int> list2(list); 或者 vector<int> ilist2 = ilist; //拷贝初始化 ,"="
两种方式等价 , list2 初始化为list 的拷贝, list必须与li.
//初始化size,但每个元素值为默认值
vector<int> abc(10); //初始化了10个默认值为0的元素
//初始化size,并且设置初始值
vector<int> cde(10,1); //初始化了10个值为1的元素
通过数组地址初始化
STL | vector的初始化和使用
vector指向量,可以理解为“变长数组”,长度根据需要而自动改变的数组。有时会碰到普通数组会超过内存的情况,可以使用vector解决。而且,vector可以用来以邻接表的方式存储图,可以解决当节点数太多,无法使用邻接矩阵,又害怕使用指针实现邻接表的时候,使用很简单。
01 vector的初始化
1⃣️ 默认初始化
vector<int> il...
关于vector
vector数组是一个能存放任意数据类型(类,结构,普通变量类型等)的动态数组,在数据结构中就相当于顺序储存的线性表,寻找元素非常快,但是插入元素的时间却很大(list是一个双向链表,在同一个位置插入大量的数据时速度很快,但是查找的速度就会慢很多)
和普通数组一样可以通过下标索引来进行访问
与其它动态序列容器相比(deques, lists and forward_lists)...
1. 基础使用与简介
向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组
vector是我们代替数组时常用的结构,其好处
一为动态长度
二为可以保证连接关系的删改,
三是动态感知内存分配器
我们可以简单地认为它是一个动态长度的stack,满足先进后出的原则(FILO).
可以使用以下方式初始化一个存储结构体的vector容器:
1. 使用默认构造函数初始化空的vector容器,然后使用push_back()函数添加结构体数据。
```c++
struct Person {
string name;
int age;
vector<Person> people;
people.push_back({"Alice", 25});
people.push_back({"Bob", 30});
2. 在声明vector容器时,使用初始化列表初始化结构体数据。
```c++
vector<Person> people = {{"Alice", 25}, {"Bob", 30}};
3. 使用emplace_back()函数添加结构体数据,该函数可以直接在vector容器中构造对象,无需提前定义对象。
```c++
vector<Person> people;
people.emplace_back("Alice", 25);
people.emplace_back("Bob", 30);