结构体内的一些操作
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软件之装配体操作基本总结二(装配体内编辑零件新建零件标准配合操作)