当前位置:网站首页 / C++ / 正文

AY的VS2019 的C++11笔记[3]

时间:2020年07月06日 | 作者 : aaronyang | 分类 : C++ | 浏览: 1469次 | 评论 0


C风格字符串

c语言的字符串最后一个字符跟着一个空字符('\0'),指针操作字符


定义在cstring头文件,cstring是C语言的string.h的C++版本

image.png


strlen(p) 返回p的长度

注意,这里最后一个字符,要\0结尾,不然长度是错误的

image.png

\0结尾后

image.png

中文

image.png



stringcmp(p1,p2)  是否相等,p1==p2,返回0,p1>p2返回正值,p1<p2 负值


image.png

这样是错误的,这里必须是const char aaa[]

image.png




strcat(p1,p2) 拼接2个字符串,返回p1

strcpy(p1,p2) 把p2拷贝给p1,返回p1

这些针对const char[]的


C++的string标准库,直接 S1+S2



与旧代码的接口

image.png

c_str() 返回的C风格的字符串。函数的返回结果是一个指针,指向一个以空字符结束的字符数组。而这个数组所存的数据恰好与那个string对象 一样。指针类型是const char*



数组初始化vector

int int_arr[] = {0,12,13,41};
vector<int> vec_int(begin(int_arr), end(int_arr));
vector<int> vec_int2(int_arr+1,int_arr+4);
for (auto iter = vec_int.begin(); iter != vec_int.end(); ++iter) {
	cout << *iter << endl;
}
for (auto iter = vec_int2.begin(); iter != vec_int2.end(); ++iter) {
	cout << *iter << endl;
}

image.png


总结,多使用vector,少使用内置数组和指针,尽量使用string,少使用C风格基于数组的字符串




多维数组,C++是没有的,其实就是数组的数组

下面两个等价的

image.png

还有,如果数量不够,就是默认值填充

image.png


constexpr size_t rowcnt = 3,colcnt=4;
	int ia[rowcnt][colcnt];
	/*for (size_t i = 0; i < rowcnt; i++)
	{
		for (size_t j = 0; j < colcnt; j++)
		{
			ia[i][j] = i * colcnt + j;
		}
	}*/
	size_t cbnt= 0;
	for (auto &row:ia)
	{
		for (auto& col : row)
		{
			col = cbnt;
			cbnt++;
		}
	}
	//输出来
	for (const auto &row : ia)
	{
		for (auto col : row)
		{
			cout << col << "," << endl;
		}
	}

image.png



指针与多维数组


不指定具体下标,默认指向第一个组

	int aintarray3[3][4] = {
		{ 1,2,3,4 },{21,22,23,24},{221,222,223,224}
	};
	int(*p)[4] = aintarray3;//等于1,2,3,4
	p = &aintarray3[2];//等于221,222,223,224




遍历输出

int aintarray3[3][4] = {
		{ 1,2,3,4 },{21,22,23,24},{221,222,223,224}
	};
	int(*p)[4] = aintarray3;//等于1,2,3,4
	p = &aintarray3[2];//等于221,222,223,224

	for (auto p = begin(aintarray3); p!=end(aintarray3); p++)
	{
		for (auto q = begin(*p); q != end(*p); q++)
		{
			cout << *q<< endl;
		}
		cout << ""<< endl;
	}

不想auto

定义别名



优先使用标准库,之后在考虑C++语言内置的底层的替代品数组或指针。



 AYUI       www.ayjs.net      AY         杨洋原创编写,请不要转载谢谢

































































推荐您阅读更多有关于“C++,”的文章

猜你喜欢

额 本文暂时没人评论 来添加一个吧

发表评论

必填

选填

选填

必填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

  查看权限

抖音:wpfui 工作wpf,兴趣学习flutter

目前在合肥市某公司上班,已经厌弃,如果你的公司看的上我,加我QQ私聊

AYUI8全源码 Github地址:前往获取

杨洋(AaronYang简称AY,安徽六安人)AY唯一QQ:875556003和AY交流

高中学历,2010年开始web开发,2015年1月17日开始学习WPF

声明:AYUI7个人与商用免费,源码可购买。部分DEMO不免费

不是从我处购买的ayui7源码,我不提供任何技术服务,如果你举报从哪里买的,我可以帮你转正为我的客户,并送demo

查看捐赠

AYUI7.X MVC教程 更新如下:

第一课 第二课 程序加密教程

标签列表