当前位置: 首页 > news >正文

建站外贸网站建设查询网站

建站外贸网站建设,查询网站,html手机模板,特种作业操作证查询平台目录 1, 什么是vector 2, 创建vector 2-1, 标准数据类型 2-2, 自定义数据类型 2-3, 其他创建方式 3, 操作vector 3-1, 赋值 3-2, 添加元素 3-2-1, 添加元素(assi…

目录

1, 什么是vector

2, 创建vector

2-1, 标准数据类型

2-2, 自定义数据类型

2-3, 其他创建方式

3, 操作vector

3-1, 赋值

3-2, 添加元素

 3-2-1, 添加元素(assign)

3-2-1-1, 标准数据类型

3-2-1-2, 自定义数据类型

3-2-2, 添加元素(insert)

3-2-2-1, 标准数据类型

3-2-2-2, 自定义数据类型

3-2-3, 添加元素(push_back)

3-2-3-1, 标准数据类型

3-2-3-2, 自定义数据类型

3-3, 查询(at)

3-3-1, 标准数据类型

3-3-2, 自定义数据类型

3-4, 获取容量(capacity)

3-5, 获取长度(size)

3-6, 交换(swap)

3-7, 删除元素(erase)

3-8, 清空元素(clear)

4, 嵌套vector


1, 什么是vector

C++中的一种容器数据类型, 也叫单端数组, 动态扩展, 并不是在原空间上进行扩展,而是重新找更合适的内存空间, 将原来的数据拷贝到新空间,并释放原来的空间, 迭代器支持随机访问

2, 创建vector

通过vector<数据类型> 对象名, 可创建vector, 数据类型可以是标准数据类型, 也可以是自定义类型

2-1, 标准数据类型

//指定容器中元素数据类型为string
vector<string> v1;

2-2, 自定义数据类型

class Myclass
{
public:Myclass() {};Myclass(string name, int age) :m_name(name), m_age(age) {};string m_name;int m_age;
};Myclass m("aaa", 1);
//容器中元素的类型为Myclass
vector<Myclass> v1;

2-3, 其他创建方式

Myclass m("aaa", 1);
vector<Myclass> v1;
//拷贝构造方式创建
vector<Myclass> v2(v1);
//通过迭代器容器方式创建
vector<Myclass> v3(v1.begin(), v1.end());
//创建v4, 并插入5个m对象
vector<Myclass> v4(5, m);

3, 操作vector

3-1, 赋值

通过vector<数据类型> 对象名2 = 对象名1, 进行赋值

vector<Myclass> v1;
vector<Myclass> v2 = v1;

3-2, 添加元素

 3-2-1, 添加元素(assign)

assign是用新的元素替换原来vector的元素

3-2-1-1, 标准数据类型
//通过迭代器区间方式进行赋值
v2.assign(v1.begin(), v1.end());
//给容器v1, 赋值5个字符串a
v1.assign(5, "a");
3-2-1-2, 自定义数据类型
//通过迭代器区间方式进行赋值
v2.assign(v1.begin(), v1.end());Myclass m("aaa", 1);
//容器中元素的类型为Myclass
vector<Myclass> v1;
//给容器v1, 赋值5个m对象
v1.assign(5, m);

3-2-2, 添加元素(insert)

insert是向vector指定位置, 添加元素, 支持一次添加多个元素

3-2-2-1, 标准数据类型
//表示在首元素位置, 以此插入3个字符串b
v1.insert(v1.begin(), 3, "b");
//表示在首元素位置, 插入字符串c
v1.insert(v1.begin(), "c");
3-2-2-2, 自定义数据类型
Myclass m1("aaa", 1);
vector<Myclass> v1;
//在首元素处插入m1
v1.insert(v1.begin(), m1);
//在首元素处插入2个m1
v1.insert(v1.begin(), 2, m1);

3-2-3, 添加元素(push_back)

push_back是在vector的尾部添加元素, 只能单个添加

3-2-3-1, 标准数据类型
vector<string> v1;
v1.assign(3, "a");
//在尾部添加c
v1.push_back("c");
3-2-3-2, 自定义数据类型
Myclass m1("aaa", 1);
Myclass m2("bbb", 2);
vector<Myclass> v1;
v1.assign(3, m1);
//在尾部添加m2
v1.push_back(m2);

3-3, 查询(at)

通过对象名[索引]或者对象名.at(索引), 获取vector中的元素

3-3-1, 标准数据类型

//通过索引方式查询
cout << v1[0] << endl;
//通过at方式查询
cout << v1.at(1) << endl;
//获取首元素
cout << v1.front() << endl;
//获取尾元素
cout << v1.back() << endl;

3-3-2, 自定义数据类型

Myclass m1("aaa", 1);
Myclass m2("bbb", 2);
Myclass m3("ccc", 3);
vector<Myclass> v1;
v1.push_back(m1);
v1.push_back(m2);
v1.push_back(m3);//通过索引方式查询
cout << v1[0].m_name << endl;
//通过at方式查询
cout << v1.at(1).m_name << endl;
//获取首元素
cout << v1.front().m_name << endl;
//获取尾元素
cout << v1.back().m_name << endl;

3-4, 获取容量(capacity)

通过对象名.capacity(), 获取vector的容量大小

cout << v1.capacity() << endl;

3-5, 获取长度(size)

通过对象名.size(), 获取vector的元素个数

cout << v1.size() << endl;

3-6, 交换(swap)

通过对象名1.size(对象名2) 交换两个vector的元素, 两个vector的数据类型需要一致

v1.swap(v2);

3-7, 删除元素(erase)

通过对象名.erase(迭代器位置), 删除元素

//指定迭代器位置删除元素
v1.erase(v1.begin());
//删除尾部元素
v1.pop_back();

3-8, 清空元素(clear)

通过对象名.clear(), 清空vector元素

v1.clear();
//指定迭代器区间清空元素
v1.erase(v1.begin(), v1.end());

4, 嵌套vector

通过vector<vector<数据类型>> 对象名, 可实现嵌套vector

#include <iostream>
#include <string>
#include <vector>using namespace std;class Myclass
{
public:Myclass() {};Myclass(string name, int age) :m_name(name), m_age(age) {};string m_name;int m_age;
};void print_v(vector<vector<Myclass>>& v)
{//it为外层vector的第一个元素迭代器for (vector<vector<Myclass>>::iterator it = v.begin(); it != v.end(); it++){//vit为内层vector的第一个元素迭代器for (vector<Myclass>::iterator vit = (*it).begin(); vit != (*it).end(); vit++){cout << vit->m_name << endl;}}
}int main()
{Myclass m1("aaa", 1);vector<Myclass> v1;vector<vector<Myclass>> v2;v1.push_back(m1);v2.push_back(v1);print_v(v2);system("pause");return 0;
}

http://www.hrbkazy.com/news/22474.html

相关文章:

  • 营销型网站要多少钱app推广接单平台哪个好
  • 医院手机网站怎么做一个网站出来
  • 公司网站建设的分类阿里云万网域名购买
  • 一般网站 广告百度网盘app官网下载
  • 自己设计logo软件搜索排名优化策划
  • 济南高品质网站制作天猫关键词排名怎么控制
  • 深圳微商城网站设计制作推广计划怎么做推广是什么
  • 阿里云服务器做盗版视频网站吗微信小程序开发一个多少钱啊
  • 罗湖做网站多少钱域名搜索
  • 青海西宁高端网站建设进入百度首页官网
  • 自己建一个网站需要多少钱如何做企业产品推广
  • 小学生做网站软件建站小程序
  • 安卓app用什么软件编写ios aso优化工具
  • 京美建站有代码吗长沙网站优化公司
  • 重庆中小企业建站价格域名购买平台
  • 官网网站设计嘉兴新站seo外包
  • 微商怎么做分销众志seo
  • 宁波网站建设营销推广吉安seo网站快速排名
  • 合肥做网站便宜mdyunseo专员是干什么的
  • 酒店预订网站建设百度网站链接提交入口
  • 做网站开发公司电话本地建站软件有哪些
  • 设计本网站是用什么做的推广app软件
  • 微网站微信数据库设计创建网站
  • 济南网站建设在哪里搜索引擎优化学习
  • 网站页脚怎么做百度搜索关键词排名查询
  • 当日网站收录查询统计百度客户端下载
  • 淘客网站做单品类石家庄百度关键词优化
  • 企业网站导航一般做多高关键词优化排名用哪些软件比较好
  • 做网站推广的一般都是什么公司河南关键词排名顾问
  • 做网站需要留什么长沙seo优化推广