结构体内的一些操作
作者:互联网
结构体内的一些操作
重载
#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 << "\n";
cout << y.a << " " << y.b << "\n";
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\)里搞的东西只能在这个结构体里用到,上面代码被注释的是错误写法,会报错:
标签:ch,const,cout,int,重载,test,操作,体内,结构 来源: https://www.cnblogs.com/czhui666/p/13381870.html