关于c++中的变量定义后自动初始化问题

本文深入探讨了C++中数组与Vector的初始化特性,揭示了不同类型变量在初始化过程中的差异。对于int、char类型,数组需要显式初始化或赋值,否则运行时会出错;而string类型数组初始化为空。Vector方面,int、double、long long类型默认初始化为0,string、char类型初始化为空。同时,文章对比了map中不同类型的初始值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include<iostream>
#include<string>
#include<vector>
#include<map>
using namespace std;
int main(){
	int a;
	int b[80];
	string s;
	string sd[4];
	char c;
	char cs[6];
	//if(a==0) cout << "s";
	//cout << a << endl;
	//cout << b[5] << endl;
	cout << s << endl;
	cout << sd[3] << endl;
	//cout << c << endl;
	//cout << cs[2] << endl;
	
	vector<int> v(45);
	vector<char> vc(45);
	vector<string> vs(89);
	vector<double> vd(65);
	vector<long long> vl(155);
	map<string,int> m;
	map<int,string> ms;
	map<string,double> md;
	map<string,long long> ml;
	cout << v[6] << endl;
	cout << vs[7] << endl;
	cout << vc[7] << endl;
	cout << vd[64] << endl;
	cout << vl[61] << endl;
	cout << m["f"] << endl;
	cout << ms[5] << endl;
	cout << md["sdfsdf"] << endl;
	cout << ml["fsdf"] << endl;
	return 0;
}

总结:
在数组中,int型,char型使用前需初始化或赋值,否则会在运行时出错。而string型初始化为空。
而在vector中int,double,long long型均被初始化为0,而string,char被初始化为空。map中int,double与long long型的值初始为0,string初始为0。(这样说可能不太准确,不过大概就是这意思)
故:c++大法好,舍弃过时的数组来用vector吧。(振臂高呼)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值