复合类型、string、vector。

一、引用、指针相关总结。

#include<iostream>
using namespace std;
int main()
{
	int b = 1, c = 1;
	const int a = 1;
	const int& r1 = a;//必须用const修饰,且不能更改r1,a的值。
	auto& r2 = r1;//引用时auto保留const。
	decltype(r2)r3 = r2;//r3为const对象。
	const int&& r4 = r3 + 1;//此时r4的值不能修改。
	int&& r5 = r4 + 1;//此时r5的值可以被修改,但无法影响到r4的值。
	int* r6 = &b;//r6的值为b的存贮地址,想获取b的值需用解引用符号*,b的地址会随着后续代码的变化而变化!。
	const int* r7 = nullptr;//此时r7为空指针,若不用nullptr初始化,则为野指针,有潜在危险。r7此时为常量指针,仅能改地址。21行加了指针常量。
	r7 = &b;//我发现r7的类型为int *,即r7表示的只能为一个地址了,*与r7不是一体的。
	r7 = &c;//r7的地址可以更改。
	//auto,decltype在指针的表达与引用类似,在此不再做演示。
	const void* r8 = &a;//对于const型的对象,必须用const修饰void,
	r8 = &b;//但是r8似乎并未被const影响,可以改变对象的地址。
	int** r9 = &r6;//此为二级引用。同理可通过增加*数量定义三,四以及更多级引用。
	int* const r10 = &b;
	*r10 = 2;//此处r10为指针常量,地址不可改,但可改对象的值。
	return 0;
}
}

二、数组、引用数组、指针数组。
[ ]<=>*

#include<iostream>
using namespace std;
int main() {
	int a[2] = { 1 };//a表示一维数组,第一个元素为1。因为未不赋值,第二个元素为0。
	//[]中元素必须为整型常量表达式。
	int* (b1)[2];//此时由于优先级,数组b1中的元素均为未定义的指针,编译器(可能?)警告,但仍可执行。b1为指针数组。
	*b1 = a;
	cout <<**b1<<"\n"<<*b1 <<"\n"<<b1<< endl;//b1与*b1不同,**b1才为a[0]。so why and what is the difference between them.
	int(*b2)[2] = &a;//此为指向数组的指针数组。
	int*(&b3)[2] = b1;
	cout << *b2[0] << endl;//此时编译器警告可读大小小于实际读取大小。*b2[0]=a[0]。
	int(&c)[2] = a;//此时c为a的引用,可通过[]中数字对应a数组对应元素。
	cout <<(c[0])<<"    "<<a[0]<< endl;
	for (auto z : a) {//此为按顺序轮流调用a中元素,也可通过此方式对a中元素赋值。
		cout << z << endl;
	}//此循环用来输出a数组中所有元素。
    for(int y=0;y<2;y++){
		cout << a[y] << endl;
	}//此循环也可输出a数组中所有元素。更可通过调整对y的循环的限制任意输出目标元素。
	int d[2][3] = { 1,1,1,2,2,2 };//此为2*3的数组,也可{{1,1,1}{2,2,2}}这样赋值。
	auto e = a;//因为a直接输出是为地址,此时e被推导为指针。
	cout << e << endl;
	cout << *(e + 1 )<< endl;//此处e+1自动推导到a中下一个元素的位置。
	int f[2][3] = { 0,1,2,3,4,5, };//此处f为二维数组。
	//要输出f中特定位置的元素有以下多种方法。
	auto g = f;
	cout << g[1][1] << "\n" << *(*(g + 1) + 1)<<"\n" <<*(g[1]+1) <<endl;
	//下面再用for遍历且输出f中元素。
	for (auto i=&f[0][0]; i<f[0] + 6; ++i)
		cout <<*i<<" ";
	cout << endl;
	for (; g < f + 2; g++) {
		for (auto h = *g; h < *g + 3; ++h) {
			cout << *h<<" " ;
		}
	}
	cout << endl;
			return 0;
}

三、string类型

#include<iostream>
#include<string>
using namespace std;
int main() {
	string a("0");
	string b="hello C++";
	string c,d;
	cin >> c;//遇到空格即停止。
	getline (cin,d);//与上式相连时第一位必是 (空格),注意此处为,(逗号)。
	if (!empty(d))//如果d非空则输出d的字符数。
		cout << d.size()<<endl;//size可替换为length。
	string* e = &d;
	cout << *e <<"   "<<e->size()<<endl;//通过->将指针转化为类类型。
	if (a < b) {
		cout << "string 通过长度比大小" << endl;
	}
	string s1 = c + d;//string相加即为将两个string类型连接。
	cout << s1 << endl;
	a.at(0) = '1';//通过at操作对应元素,必须使用单引号。
	cout << a << endl;
	cout << b.front() << "  " << b.back() << endl;//为什么括号中不能加数字以改变对应位次。
	return 0;
}

四、vector类型

#include<iostream>
#include<vector>
using namespace std;
int main() {
	vector<int>v1(3, 2);//2,2,2.
	vector<int>v2(v1);//复制
	vector<int>v3;
	vector<int>v4{ 1,2,3 };//v4={1,2,3}
	for (int i=0; i<10; i++) {
		v3.push_back(i);
	}
	v3.pop_back();//从最后删除()中不加数字
	v3.clear();//清除v3所有元素。
	cout << v4.at(1) << endl;
	auto a = v4.begin();//a为迭代器,类似指针。指向v4的第一个元素。
	auto b = v4.end();//b为迭代器,指向v4的尾后元素。
	cout << *(a+1) << endl;
	cout << *(b-1) << endl;
	for (; a != b; a++) {//习惯上选择!=运算,而非<运算。
		*a += 1;
		cout << *a << endl;
	}
	vector<string>vs = { "i","love","you" };
	auto c = vs.begin();
	cout << (*c).size() << endl;//括号必不可少。
	cout << (c+1)->size() << endl;//通过括号改变成员选择。
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值