结构体内的一些操作

Posted czhui666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结构体内的一些操作相关的知识,希望对你有一定的参考价值。

结构体内的一些操作

重载

#include <bits/stdc++.h>

using namespace std;

struct test {
	int a, b;
	friend bool operator < (const test &x, const test &y) {
		return x.a < x.b;
	}
} x, y;

int main() {
	
	cin >> x.a >> x.b;
	if(x < y) cout << 1;
	else cout << 0;
	
	return 0;
} 

加&:更快。相当于调用地址进行操作。如果不加&的话会非常慢,相当于把要操作的东西先复制了一遍。

(const):保证要操作的东西不被改变。可以更快一点点。

(friend):结构体中重载,后面如果有两个参数,必须加(friend)。如果在结构体外重载就不用加了。

返回类型:上面的就是返回的(bool)类型,因为是重载小于号,别的该返回啥返回啥。

构造函数

#include <bits/stdc++.h>

using namespace std;

struct test {
	int a, b;
    char *ch[2];
	test(int c = 0, int d = 0) : a(c), b(d) { ch[0] = ch[1] = NULL; }	
};

int main() {
	
	test x(1, 3), y;
	cout << x.a << " " << x.b << "
";
	cout << y.a << " " << y.b << "
";
	
	return 0;
}

技术图片

? 更简单的初始化,注意要赋值的东西对应好了就行。如果没有赋初值直接就是0。

保护(隐藏)

#include <bits/stdc++.h>

using namespace std;

struct Stack {
	protected:
		int a;
	public:
		void make() {
			cout << ++a; 
		}
} cj;

int main() {
	
	cj.make();
//	cj.a++;

	return 0;
}

? 我们平常写的结构体内的所有东西都是在(public)中搞的,(protected)里搞的东西只能在这个结构体里用到,上面代码被注释的是错误写法,会报错:
技术图片


以上是关于结构体内的一些操作的主要内容,如果未能解决你的问题,请参考以下文章

C 语言结构体 ( 结构体中嵌套二级指针 | 为 结构体内的二级指针成员 分配内存 | 释放 结构体内的二级指针成员 内存 )

结构建模设计——Solidworks软件之装配体操作基本总结二(装配体内编辑零件新建零件标准配合操作)

结构建模设计——Solidworks软件之装配体操作基本总结二(装配体内编辑零件新建零件标准配合操作)

结构建模设计——Solidworks软件之装配体操作基本总结二(装配体内编辑零件新建零件标准配合操作)

可以把宏定义放在结构体中吗

结构体内的函数与bfs的情景变量