前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >暑假(补)-2

暑假(补)-2

作者头像
AngelNH
发布2020-04-16 11:08:09
4460
发布2020-04-16 11:08:09
举报
文章被收录于专栏:AngelNI

VECTOR

vector类为内置数组提供了一种替代的表示,通常建议使用vector。(但仍有许多程序环境必须使用内置数组),vector 是C++中的一个容器类型,vector类是随标准C++引入的标准库的一部分。

使用vector必须包含相关的头文件

#include

vector初始化

  1. 1. vector<int> ve(10); //定义已知长度的Vector,初始值默认为0 2. vector<int> ve(10,2); //定义已知长度,并且初值为2的数组 3. int a[4] = {1,2,3,4}; vector< int > ve( a , a+4); //将静态数组拷贝至不定数组 4. vector<int> ve(&a[1] , &a[3] ) //将a[1],a[2]拷贝到不定数组,其实是一个地址的传递 5. vector <int> a(10,2); vector<int > b(a); //vector 被另一个vector初始化 vector<int > c; c = b; //vector 被赋值给另一个vector、 <!--0-->

vector二维数组(输入,输出)

代码语言:javascript
复制
#include<vector>
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
	vector<vector<int> > a;
	vector<int> b;
	int temp;
	int i,j;
	for(i =0;i<5;i++)
	{
		b.clear();
		for(j =0;j<5;j++)
		{
			cin>>temp;
			b.push_back(temp);
		}
		a.push_back(b);
	}
	for(i=0;i<5;i++)
	{
		for(j=0;j<5;j++)
		{
			cout<<a[i][j]<<" ";
		}
		cout<<"\n";
	}
	return 0;
 }

vector字符串数组

代码语言:javascript
复制
vector<string> text;
	string word;
	int a=5; 
	while((a--)&&cin>>word  )//// && 短路问题 
	{
		
		text.push_back(word);
	}
	for(int i=0;i<text.size();i++)
	{
		cout<<text[i]<<" ";
	}

动态空间申请

malloc

代码语言:javascript
复制
#include<iostream>
#include<stdlib.h>
#include<stdio.h>
using namespace std;
int main()
{
	int *p;
	int i;
	p = (int *)malloc(sizeof(int)*5); 
	for(i=0;i<5;i++)
	{
		cin>>p[i];
	}
	for(i=0;i<5;i++)
		cout<<p[i]<<endl;
	
	free(p);
	return 0;
 }

calloc

代码语言:javascript
复制
#include<iostream>
#include<stdlib.h>
#include<stdio.h>
using namespace std;
int main()
{
	int *p;
	int i;
	p = (int *)calloc(sizeof(int),5); 
	for(i=0;i<5;i++)
	{
		cin>>p[i];
	}
	for(i=0;i<5;i++)
		cout<<p[i]<<endl;
	
	free(p);
	return 0;
 }

malloc 与 calloc 在使用方法上基本上是差不多的。malloc它允许从空间内存池中分配内存,malloc()的参数是一个指定所需字节数的整数。colloc与malloc类似,但是主要的区别是存储在已分配的内存空间中的值默认为0,使用malloc时,已分配的内存中可以是任意的值. colloc需要两个参数,第一个是需要分配内存的变量的个数,第二个是每个变量的大小.

二维空间申请

代码语言:javascript
复制
#include<iostream>
#include<stdlib.h>
#include<stdio.h>
using namespace std;
int main()
{
	int ** p;
	int i,j;
	p = (int **)calloc(sizeof(int*),5);
	for(i =0;i<5;i++)
	{
		p[i] = (int *)calloc(sizeof(int),5);
	 } 
	for(i=0;i<5;i++)
		for(j =0;j<5;j++) 
			cin>>p[i][j];
	
	for(i=0;i<5;i++)
		for(j=0;j<5;j++)
			cout<<p[i][j]<<endl;
	
	for (int i= 0; i < 5; i++)
	{
		free(p[i]);						
	}
	free(p);
	return 0;
 }

二维空间与一维空间主要的不同是:二维数组由一维数组组成,申请的空间要分别对每个一维空间申请。释放空间时也是如此,先释放每个一维空间,最后在释放二维空间。

C++ 动态空间申请

代码语言:javascript
复制
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
    //一维空间申请
	int m=9; 
	int *p= new int[m];
	for(int i=0;i<9;i++)
	{
		cin>>p[i];
	 } 
	for(int i=0;i<9;i++)
		cout<<p[i]<<endl;
	delete []p;
	
	//二维空间申请方法一
	int n=4,m=4;
	int tem =0;
	int **p = new int*[m];
	for(int i=0;i<m;i++)
	{
		p[i] = new int[n]; 
	 }
	for(int i=0;i<m;i++)
	{
		for(int j=0;j<n;j++)
		{
			p[i][j]=tem;
			tem++;
			}
	}
	for(int i=0;i<m;i++)
		for(int j=0;j<n;j++)
			cout<<p[i][j]<<endl;
	
	for(int i=0;i<m;i++)
		delete []p[i]; 
	
	delete []p;
	//二维空间申请方法二
	int (*q)[3] = new int[3][3];
	for(int i=0;i<3;i++)
		for(int j=0;j<3;j++)
			cin>>q[i][j];
	for(int i=0;i<3;i++)
		for(int j=0;j<3;j++)
			cout<<q[i][j]<<setw(3);
	
	delete []q;
	return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-09-11|,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • vector初始化
  • vector二维数组(输入,输出)
  • vector字符串数组
  • 动态空间申请
    • malloc
      • calloc
        • 二维空间申请
        • C++ 动态空间申请
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档