刚刚接触到算法,真的有点菜,做贪心算法的练习的时候,第一个题 “牛叫声”,我一开始用的暴力解法,也没有什么头文件 ,就直接提交了,纯暴力,果不其然,ove rtime了,然后改变了思维 动笔算了一下,发现了数值上的规律,优化了一下,因为用了sort 我一开始也不知它的头文件,我就用的万能头 ,发现vjudge上面提交不了。所以我就动手查了资料找到了它,测试数据发现可以过去,我就提交,结果wa了,我左思右想,原因是数据类型不能是int 得是longlong,真是一波三折,必须注意细节!
大一上学期学的程序设计只学到了数组;寒假的时候我做一些题的时候 ,稍微复杂一点的解析说要用到struck,或者是string,这对当时的我来说的陌生的 ,我这个时候才知道懂得的自己学的皮毛都不算,于是我在寒假的时候在b站上看甲鱼c的视频 自学了一下string,string是字符串了类型;而且比字符数组好用的多,不用在意字符数组越界的问题,以及数组相连接的时候记下的库函数,直接一个“+”;解决,用string真的很方便;
之后又了解了struck,结构体,用结构体数组来解决成绩姓名排序问题真的方便多了
struck st
{ int cj;
string name;
} ;struck st E[100],然后想用sort()给y.cj排下序;发现sort不能单独对结构体成员排序;
需要自己写一个if()来给结构体数组来排序然后交换位置,再输出。
现在学到了类
class 又明白了 struck是class的一种特殊形式,只有public,只有类中的数据成员位于public才可以用 对象(变量)名字.成员名来访问;
类class中数据成员一般位于private但是能访问数据成员的函数(成员函数)位于public,所以在类中或类外定义好成员函数以后,就可以调用来访问数据成员,例如
class man //定义一个类型man
{public:
viod set(int a,int b){l=a;w=b} //成员函数set()给成员l,w赋值
int getshengao(){return l} //获取l
int gettizhong(){return w} //获取w
private:
int l,w;
}lihua;
int main()
{
int a,b;
cin>>a>>b;
set(a,b);
lihua.getshengao();
lihua.gettizhong();
cout<<lihua;
return 0;斜体样式
}
这样就输出了lihua的身高体重;
但是就目前来看class的规则有点多 个人感觉没有struck好用。
之后老师又补充了 STL;里面有好多比较方便的有针对性的工具,比如 string;sort;去重函数;栈,队,迭代器等
灵活运用stl真的可以事半功倍;
自己还是有好多不会;不过我不会甘于不会;
加油!
**加粗样式** 21-3-13