大漠刀客 level
获赞
260
粉丝
6
关注
11
看过 TA
52
苏州大学
2018
C++
IP属地:安徽
暂未填写个人简介
私信
关注
2017-03-12 13:49
苏州大学 C++
每个类负责定义各自的接口,要想与类的对象交互必须使用该类的接口,即使这个对象是派生类的基类部分也是如此。 这个类的对象指什么?我觉得不是用基类或者派生类定义的对象吧。这里的类的对象说的是不是类当中的成员啊?
沉溺学习不能自拔的小浣熊:类的对象就是类的对象呀,和类的对象交互就只能调用public的数据也就是类定义的接口呗,打个比方我在游戏场景中定义一个主角对象,主角对象就是主角类的对象,主角类中包括public函数跳跃和攻击,假设按下一个键j就可以攻击怪物,怪物对象就是怪物类的对象,其中有public扣血函数private血量,主角类的对象和怪物类的对象的相互作用就通过接口来实现呀,按下j主角攻击,怪物被打到就调用扣血函数扣血。。类的对象就是类的对象呀。。可以用同一个怪物类建立很多怪物对象,这样他们就有一样的属性条目,对象不应该是指类中的成员吧,类中的成员应该是对象的属性
0 点赞 评论 收藏
分享
2017-03-06 09:21
苏州大学 C++
下面这四行代码,process( x )已经错误了,怎么还会有int j=*x的语句, 还有这句process( shared_ptr<int>(x) ) ;这里x怎么又重新定义了x。 int *x( new int(1024) ) ; process(x) ; process( shared_ptr<int>(x) ) ; int j = *x;
SunburstRun:    再好好解释一下:process的形参是shared_ptr<int> ptr,那么把 int *x传进去是很错误的,因为x是普通指针,不能直接强转为shared_ptr<int>类型,所以"process( x ) "是错误的,但是primer是告诉你这样做是错误的,没说是这样定义好了,然后告诉你下面这行"process( shared_ptr<int>(x) ) ; "可以通过编译,但是这样的话,这是一个临时对象" shared_ptr<int>(x)  ",传进process里后,执行后会销毁,但是引用计数会减1,因为你刚刚开始使用的普通指针,引用计数为0,拷贝后也是1,销毁后就是0,那么int j=*x;就是一个很危险的行为,如果你使用的上面的shared_ptr<int> p(new int(1024));那么刚刚开始引用计数就是1了,int i=*p;就是正确的
0 点赞 评论 收藏
分享
2016-10-19 23:53
苏州大学 C++
问题:&nbsp;某学校有N个学生,形成M个俱乐部。每个俱乐部里的学生有着一定相似的兴趣爱好,形成一个朋友圈。一个学生可以同时属于若干个不同的俱乐部。根据&ldquo;我的朋友的朋友也是我的朋友&rdquo;这个推论可以得出,如果A和B是朋友,且B和C是朋友,则A和C也是朋友。请编写程序计算最大朋友圈中有多少人。&nbsp;链接:&nbsp;https://pta.patest.cn/pta/test/15/exam/4/question/840&nbsp;用并查集保存每个数据的根节点,最后用桶排序的方法输出相同根节点出现最多的次数。&nbsp;PAT上的基础题为什么最后的case是错误的。&nbsp;代码如下&nbsp;#include&nbsp;...
STLighter:当然是不一样的, 你赋值是在findRoot中做的 set[s] = findRoot( set , set[s] ) ; 但是merge操作在findRoot后执行, 可能会改变root. 另外你这个赋值操作是一种并查集的优化方法, 称为路径压缩, 这样保证查找的路径不会过长, 复杂度为log级, 但并不能保证所有点都直接指向父节点, 否则查找就是稳定O(1)了. 实际上要达到近似常数的复杂度还需要使用按秩合并优化.
0 点赞 评论 收藏
分享
2016-02-19 20:15
苏州大学 C++
原链接http://mp.weixin.qq.com/s?__biz=MzA5MTgwMDU4NQ==&amp;mid=208140301&amp;idx=4&amp;sn=40f992b590a767d775c593ea2f438474&amp;scene=2&amp;srcid=1222Q1O1d2Za8fmolYxAi1pP&amp;from=timeline&amp;isappinstalled=0#wechat_redirect&nbsp;这题怎么做啊?是动态规划么&nbsp;??&nbsp;5.public&nbsp;void&nbsp;printFactors(int&nbsp;...
江山如画君:第二个测试用例的输入是32,不是24。 代码: public static void printFactors(int n) { System.out.println(1 + "*" + n); function(n, 1, ""); } public static void function(int n, int preChushu, String str) { int shang, yushu, chushu; for (chushu = 2; chushu <= Math.sqrt(n); chushu++) { yushu = n % chushu; shang = n / chushu; if (yushu == 0 && chushu >= preChushu) { System.out.println(str + chushu + "*" + shang); function(shang, chushu, str + chushu + "*"); } } } 解析见我的博客:  Linkedin面试题
投递LinkedIn (领英)等公司10个岗位 >
0 点赞 评论 收藏
分享
2015-12-15 21:30
已编辑
苏州大学 C++
#include&nbsp;&lt;stdio.h&gt;&nbsp;#include&nbsp;&lt;stdlib.h&gt;&nbsp;#define&nbsp;MaxNumber&nbsp;100&nbsp;#define&nbsp;MaxWeight1&nbsp;100&nbsp;int&nbsp;M[100][100],T[100][100]&nbsp;;&nbsp;int&nbsp;book[100]&nbsp;;&nbsp;struct&nbsp;Goods&nbsp;{&nbsp;int&nbsp;weight[&nbsp;MaxNumber&nbsp;]&nbsp;;&nbsp;int&nbsp;value[&nbsp;MaxNumber]&nbsp;;&nbsp;int&nbsp;numbers&nbsp;;//物品数量&nbsp;}&nbsp;;&nbsp;struct&nbsp;Knapsack&nbsp;{&nbsp;int&nbsp;MaxWeight&nbsp;;&nbsp;//背包承重量&nbsp;}&nbsp;...
大漠刀客:递归没出口 int MFKnapsack( int i , int j , struct Knapsack *knapsack , struct Goods *goods ) { int value ; if(i==0) return 0 ; else { if(T[i][j]<0) { if( j<goods->weight[i] ) value = MFKnapsack(i-1,j, knapsack , goods ) ; else value = Max( MFKnapsack(i-1,j, knapsack , goods ) , goods->value[i]+MFKnapsack( i-1 , j-goods->weight[i] , knapsack , goods ) ); T[i][j] = value ; } return T[i][j] ; } }
0 点赞 评论 收藏
分享
关注他的用户也关注了:
牛客网
牛客企业服务