网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

C++:vector操作笔记-创新互联

本文记录了对C++中的vector容器的简单操作,包括给vector添加元素、按指定列排序、取值。

尖山网站制作公司哪家好,找成都创新互联!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。成都创新互联成立于2013年到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联

文章目录
      • 一、vector 和普通数组之间的转化
      • 二、根据vector数组的某一列数据排序
      • 三、删除二维 vector 数组最后一列数据


一、vector 和普通数组之间的转化

1,数组转vector

double ptProjected[4] = {1.1, 1.2, 1.3, 5.0};
vectorvecProjected(ptProjected, ptProjected + sizeof(ptProjected) / sizeof(double));

2,vector转数组
由于vector内部的数据是存放在连续的存储空间,vector转数组事实上只需要获取vector中第一个数据的地址和数据的长度即可。如果仅仅是传参,无需任何操作,直接传地址即可,如果要进行数据复制,可以借用内存拷贝函数“memcpy”。例如:

double *buffer = new double [sizeof(arrHeight)];  
if (!vecHeight.empty())  
{memcpy(buffer, &vecHeight[0], vecHeight.size()*sizeof(double));  
}

二、根据vector数组的某一列数据排序

在这里插入图片描述

如图所示,红框内是原始数组,蓝框内是根据第四列数字从小到大排序后的数组。

#include "stdafx.h"
#include#include 
#includeusing namespace std;

int main() {vectora = {1,5,8,1 };
	vectorb = {7,8,3,3 };
	vectorc = {4,6,5,2 };
	vectord = {4,6,5,0 };
	
	//普通数组转换为vector数组
	double ptProjected[4] = {1.1, 1.2, 1.3, 5.0};
	vectorvecProjected(ptProjected, ptProjected + sizeof(ptProjected) / sizeof(double));
	
    //将一维数组加入二维数组中
	vector< vector>vecTest;
	vecTest.push_back(a);
	vecTest.push_back(b);
	vecTest.push_back(c);
	vecTest.push_back(d);
	vecTest.push_back(vecProjected);
	
	//排序所用到的列的维度,本例子根据第4列排序
	int dimension = 3;
    
    //根据第4列排序
	sort(vecTest.begin(), vecTest.end(), [&dimension](vector&a, vector&b) {return a[dimension]>b[dimension];
	});

	//打印排序后的数组
	for (auto item : vecTest) {for (auto num : item) {	cout<< num<< "\t";
		}
		cout<< endl;
	}
	
	system("pause");
	return 0;
}
三、删除二维 vector 数组最后一列数据

在这里插入图片描述

如图所示,红色框内数组是4列,蓝框内是删除了最后一列的数组。

//接上一节代码
    //删除最后一个元素
	vector< vector>result;
	for (auto pVoxel : test) {pVoxel.pop_back();
		result.push_back(pVoxel);
	}
	
	//打印删除最后一个元素后的result数组
	for (auto item : result) {for (auto num : item) {	cout<< num<< "\t";
		}
		cout<< endl;
	}

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网站题目:C++:vector操作笔记-创新互联
标题网址:http://bjjierui.cn/article/desphs.html

其他资讯