c++中vector向量几种情况的总结(向量指针,指针的向量)

c++中vector向量几种情况的总结(向量指针,指针的向量)1.标准库vector类型vector是同一种类型的对象的集合。每一个对象都有一个相应的整数索引值。标准库将负责管理与存储元素相关的内存。我们把vector称为容器,是由于它能够包括其它对象。一个容器中的全部对象都必须是同一种类型的。用vector之前,必须包括对应的头文件。#include<vector>usingstd::vector;vec…

大家好,又见面了,我是你们的朋友全栈君。

1.标准库vector类型

vector 是同一种类型的对象的集合。每一个对象都有一个相应的整数索引值。标准库负责管理与存储元素相关的内存。我们把 vector 称为容器,是由于它能够包括其它对象。一个容器中全部对象都必须是同一种类型的

用 vector之前,必须包括对应的头文件。

#include <vector>

using std::vector;

vector 是一个类模板(class template)。使用模板能够编写一个类定义或函数定义,而用于多个不同的数据类型。

因此。我们能够定义保存 string 对象的 vector。或保存 int 值的 vector。又或是保存自己定义的类类型对象vector。使用类模板时仅仅须要简单了解类模板是怎样定义的就能够了。

声明类模板产生的某种类型的对象须要提供附加信息。信息的种类取决于模板

vector 为例必须说明 vector 保存何种对象的类型,通过将类型放在类模板名称后面的尖括号中来指定类型

vector<int> ivec; // ivec holdsobjects of type int

vector<Sales_item> Sales_vec; //holds Sales_items

注意:和其它变量定义一样(作为定义变量看待。如 int a;float b;),定义 vector 对象要指定类型和一个变量的列表。上面的第一个定义,类型是vector<int>(相当于int。或double)。该类型即是含有若干 int 类型对象的 vector,变量名为 ivec(相当于a,b)。第二个定义的变量名是 Sales_vec,它所保存的元素 是 Sales_item 类型的对象。

即,

定义方法为:vector<类型> 名称

vector<类型:作为一个总体,是类型,相当于intfloat

名称  相当于变量的名字,ab

则下面几种都是成立的

vector<int> k;//向量
vector<int*>kk;//int
指针的向量。以后再具体斟酌
vector<int>*kkk;//vector
向量指针
vector<int*>*kkkk;//int
指针的向量指针(对照int*p理解,指针变量前面的“*”表示该变量的类型为指针变量,p是指针变量名,而不是*p

vector 不是一种数据类型,而仅仅是一个类模板,可用来定义随意多种数据类型。vector 类型的每一种都指定了其保存元素的类型。因此。vector<int>vector<string> 是数据类型

2.Vector向量几种情况的总结

1)  vector<int>k;//向量

#include<iostream>
#include<vector>
using namespace std;
int main()
{
	vector<int> k;
	for (int j = 0; j<12; j++)
	{
		k.push_back(j);//向kk中追加值
	}
	for (int j = 0; j<12; j++)
	{
		cout <<k[j] << " ";
	}
	system("pause");
	return 0;
}
<img src="https://img-blog.csdnimg.cn/2022010710044489370.png" alt="" />

2)vector<int*> kk;//int指针的向量

#include<iostream>
#include<vector>
using namespace std;
int main()
{
	vector<int*> k;
	int *p = new int[15];
	for (int j = 0; j<15; j++)
	{
		p[j] = j;
		k.push_back(&p[j]);
	}
	for (int i = 0; i < 15;i++)
	{
		cout << *k[i]<< " ";//由于向量容器里面都是int型的指针变量。
	}                           //所以值都是指针。所以须要间接訪问运算符*
	delete[]p;
	system("pause");
	return 0;
}
<img src="https://img-blog.csdnimg.cn/2022010710044583773.png" alt="" />

3)
 vector<int> *kkk;//vector向量指针

#include<iostream>
#include<vector>
using namespace std;
int main()
{
	vector<int> *k;//vector向量指针
	k = new vector<int>[5];
	//相当于int *p = new int[5];即vector<int> *kkk=new vector<int>[5];
	for (int i = 0; i<5; i++)
	{
		for (int j = 0; j<10; j++)
		{
			k[i].push_back(j);//像向量指针中追加值
		}
	}
	for (int i = 0; i<5; i++)
	{
		for (int j = 0; j < k[i].size(); j++)
			cout <<  k[i][j] << "  ";
		cout << endl;
	}
	delete[] k;
	system("pause");
}
<img src="https://img-blog.csdnimg.cn/2022010710044570729.png" alt="" />

4)
vector<int*> *kkkk;//int指针的向量指针

#include<iostream>
#include<vector>
using namespace std;
int main()
{
	vector<int*> *k;//int指针的向量指针
	k = new vector<int*>[5];
	int *p = new int[10];
	for (int i = 0; i < 5; i++)
	{
		for (int j = 0; j < 10; j++)
		{
			p[j] = j;
			k[i].push_back(&p[j]);
		}
	}
	for (int i = 0; i < 5; i++)
	{
		for (int j = 0; j < 10; j++)
		{
			cout<<*k[i][j]<<"  ";
		}
		cout << endl;
	}
	delete[]p;
	delete[]k;
	system("pause");
}

c++中vector向量几种情况的总结(向量指针,指针的向量)

内容来自,http://www.2cto.com/kf/201208/149635.html   
借鉴之,

 

转载于:https://www.cnblogs.com/gccbuaa/p/7211437.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148374.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 51单片机按键控制步进电机加减速及正反转

    51单片机按键控制步进电机加减速及正反转之前尝试用单片机控制42步进电机正反转,电机连接导轨实现滑台前进后退,在这里分享一下测试程序及接线图,程序部分参考网上找到的,已经实际测试过,可以实现控制功能。所用硬件:步进电机及驱动器、STC89C52单片机、直流电源1、硬件连接图注意:上图为共阳极接法,实际连接参考总体线路连接。 驱动器信号端定义:PUL+:脉冲信号输入正。(C…

    2022年6月1日
    40
  • jQuery仿阿里云购买选择购买时间长度

    效果:http://hovertree.com/texiao/jquery/61/jQuery仿阿里云购买服务器选择时间长度,操作简单,只需点击所要选的时间段代码:转自:http://hover

    2021年12月22日
    46
  • SpringBoot自动配置的原理及实现

    SpringBoot自动配置的原理及实现SpringBoot自动配置的实现原理SpringBoot的核心就是自动配置,自动配置又是基于条件判断来配置Bean。关于自动配置的源码在spring-boot-autoconfigure-2.0.3.RELEASE.jar回顾配置属性在通常需要我们在property中配置信息时,通常使用@ConfigurationProperties(pefix=“前缀”)注解的方式从配置文件中获取配置…

    2022年5月5日
    41
  • pycharm配置svn有什么用_SVN安装配置

    pycharm配置svn有什么用_SVN安装配置PyCharm是一款非常优秀的PythonIDE,以前用Editplus,用惯了感觉还行。用了PyCharm后被它丰富的功能吸引了。无论是普通python脚本、Django框架项目、还是GoogleAppEngine项目,它都能完美运行。不过设置起来比较麻烦,比如Subversion的用法我就一直没参透,我总是写完代码后出去用小乌龟提交。今天google一下,终于搞定了。现在写完代码后直接在…

    2022年8月26日
    6
  • Word 在试图打开文件时遇到错误 解决办法

    Word 在试图打开文件时遇到错误 解决办法Word在试图打开文件时遇到错误,通过属性设置解除锁定可解决。

    2022年4月29日
    80
  • 判断处理器是大端还是小端_网络字节序是大端还是小端

    判断处理器是大端还是小端_网络字节序是大端还是小端最近用杰理AC6966B调试博通的BK9527U段发射芯片,一直没调通,经过测试IIC通讯是通,硬件还是好的,但是怎么都调不到与接收端成功连接。最后咨询原厂得知提供的demo代码是大端编码模式的MCU代码,如果是小端模式,在部分写寄存器操作的过程中,如果直接传指针数据会反掉。杰理的MCU应该是小端模式,平时写代码用memcpy函数操作指针赋值最后得到的结果都是低位在前。为了进一步验证,网上找了一段代码验证,原理跟memcpy给指针赋值是类似的,最后成功验证到杰理的AC,AD系列都是小端模式:

    2022年8月30日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号