g*******r 发帖数: 4 | 1 就是用了hash存,key是一个可以唯一确定子树的字符串, value可以是出现的次数。
字符串是类似in order search的结果,不过没有子节点的地方,填一个字符,以保证
唯一性,所以基本上func(left) + root + func(right)是新的key,这样走一边,
就把duplicated的找出来了 |
|
d*******d 发帖数: 2050 | 2 第一,我认为排序是不必要的。
第二,你的意思我明白了,但是有点小问题。
主要func写在下面,initialize什么的就不写了。
设解的个数为
int func(int *A, int * B, int n, int m, long k){
// A array is the original array
// B array is a marker array
int sum = 0;
if( m == 1){
for( int i =0;i <=n-1; i++){
if( B[i] == 0 && A[i] > k ){
++ sum;
//如果需要输出所有的组合的话,在这里输出marker为1的即可.
}
}
}else {
for( int i = 0; i<=n-1; i++){
if(B[i] == 0] {
B[i] = 1;
//这里可以加点优化,减少一点recursive的 |
|
发帖数: 1 | 3 对M5长草已久,终于拔了。原来有一个淘来的二手M3,镜头有22mm,11 22mm,其他都
挺好,就是对焦速度是一个最大的痛点,虽然说比起以前的一m系列有了点进步,但是
和某品牌的微单还是有不小的差距。在室内暗光的环境对焦更是经常处于抽风状态。还
有操作上面比较蛋疼,首先是自定义功能键比较少,还有就是主按键的那个拨轮手感比
较涩,经常卡壳转不动。
1对焦:Evf和对焦时背部触摸屏选择对焦点功能的加入,让M5瞬间变身抓拍利器!有时
抓拍的时候用中心点对焦再重新构图的方式,速度会比较慢,会错失很多的瞬间,而机
器的自动对焦点有时候又不那么靠谱。虽然在M3上也有触屏对焦这个功能,但在M5强大
的对焦性能加持下,这个功能才被赋予了真正的意义!
2快捷键:M5对操作改进最大的就是顶部增加了DIAL FUNC按键和波轮,按键可以添加自
定义的常用功能,每次单击进行切换,波轮则用来调节参数,仅这一项就等于瞬间添加
了好几个快捷键。我为DIAL FUNC添加了最常用AF,测光和连拍,终于不用每次都进那
个Q set菜单去选择了。镜头边上的那个键也是可以自定义的(不是换镜头的那个按钮)
,我选择的是对焦... 阅读全帖 |
|
t*******r 发帖数: 22634 | 4 让俺用 “伪 Yacc” 写一个:
“a是素数 <=> a是大于1的自然数, 且a不被任何小于a的素数整除”
“伪 Yacc” 的东东就是类似于:
::=
func()
operator
func()
::= 2
但是,如果把 “小于 a” 改成 “不等于 a”,这玩意儿好像写不出 “伪 Yacc”。
。。 |
|
d**********o 发帖数: 1321 | 5 hw3 & hw3b与导师邮件
** from: (me~~) <(me~~)@gmail.com>
to: cs445代课老师
date: Sun, Nov 3, 2013 at 12:23 AM
subject: Hw3 problems __ 20131103001216
mailed-by: gmail.com
Hi Dr. cs445代课老师,
I have made some progress with my homework 3, but they are still very
limited and right now, I am blocked 2 problems.
1. How do I set scopes for function parameter declaration list? For example,
int main (int x, char y){ } when x or y has been declared global before
this fu... 阅读全帖 |
|
d**********o 发帖数: 1321 | 6 最终版本的compiler测试结果
=================================================
Output of Building User Code
Explode the tar
c-.l
c-.y
scanType.h
makefile
symtab.h
symtab.cpp
emitCode.h
emitCode.cpp
20131214164956-huang-CS445-F13-A5.tar: POSIX tar archive (GNU)
Tests: directory
c-.l: lex description text
c-.y: lex description text
emitCode.cpp: ASCII C++ program text
emitCode.h: ... 阅读全帖 |
|
d**********o 发帖数: 1321 | 7 简化数据
261个test文件:
完全正确的测试文件117个,占44.8%;
完全没做的测试文件 19个,占 7.3%;
其余半对的不对的,我自己也没时间去数
就让同专业的小伙伴们帮忙来数、来作鉴定、指导我吧。
compiler框架搭起来,多少也该给些分的吧~~
我不认为难,但我真的是没有足够的时间,实在是写不完这牛毛一样多的测试~~ *_^
上一贴最后总结部分重贴如下(不同专业的读者可以完全忽略上一贴):
a00 (Output OK) a00 (Output OK)
a001 (Output OK) a001 (Output OK)
a002 (Output OK) a002 (Output OK)
a009 (Output OK) a009 (Output OK)
a01 (Output OK) ... 阅读全帖 |
|
d**********o 发帖数: 1321 | 8 hw3 & hw3b与导师邮件
** from: (me~~) <(me~~)@gmail.com>
to: cs445代课老师 <[email protected]
/* */>
date: Sun, Nov 3, 2013 at 12:23 AM
subject: Hw3 problems __ 20131103001216
mailed-by: gmail.com
Hi Dr. cs445代课老师,
I have made some progress with my homework 3, but they are still very
limited and right now, I am blocked 2 problems.
1. How do I set scopes for function parameter declaration list? For example,
int main (int x, char y){ } when x or y has been declared global before
th... 阅读全帖 |
|
d**********o 发帖数: 1321 | 9 最终版本的compiler测试结果
=================================================
Output of Building User Code
Explode the tar
c-.l
c-.y
scanType.h
makefile
symtab.h
symtab.cpp
emitCode.h
emitCode.cpp
20131214164956-huang-CS445-F13-A5.tar: POSIX tar archive (GNU)
Tests: directory
c-.l: lex description text
c-.y: lex description text
emitCode.cpp: ASCII C++ program text
emitCode.h: ... 阅读全帖 |
|
d**********o 发帖数: 1321 | 10 简化数据
261个test文件:
完全正确的测试文件117个,占44.8%;
完全没做的测试文件 19个,占 7.3%;
其余半对的不对的,我自己也没时间去数
就让同专业的小伙伴们帮忙来数、来作鉴定、指导我吧。
compiler框架搭起来,多少也该给些分的吧~~
我不认为难,但我真的是没有足够的时间,实在是写不完这牛毛一样多的测试~~ *_^
上一贴最后总结部分重贴如下(不同专业的读者可以完全忽略上一贴):
a00 (Output OK) a00 (Output OK)
a001 (Output OK) a001 (Output OK)
a002 (Output OK) a002 (Output OK)
a009 (Output OK) a009 (Output OK)
a01 (Output OK) ... 阅读全帖 |
|
a****o 发帖数: 37 | 11 generally, if a func is call by value, you have no way to
change the value.
if it's call by reference, you can change it if it give you
such method.
In java, every object is a reference, and func is call by
value. So if you call f(o), you can not make o refer to
other objects, which means it is call by value. But you can
use o.setXXX to change o's state.
Just like in C
f(A* p);
it is call by value (value of the pointer), but you can call
p->setXXX() to change the state. |
|
o*****l 发帖数: 539 | 12 Is there a way that we could invoke a function dynamically?
For example, at some point of the program, I need to call a function, but
the function name, input parameters need to be dynamic, which will be define
in a config file, loaded when the program start. The function always
return a integer.
the config file like this:
|
|
b**L 发帖数: 646 | 13 谢谢totempole。
找到一个workaround 的方法了。
就是在class 里设一个指向自己的instance field. 在this.func() 的地方改成
instance.func().
class
time |
|
S*A 发帖数: 7142 | 14 展开说说?
我的理解是这样的,你看看有什么不对:
例如 expression a+b.
在 C 里面就是 int a, int b 的话就是编译成:
r1 = load &a
r2 = load &b
r3 = add r1, r2
不算 loading 的话就是一条汇编指令。
Python 里面因为不知道 a, b 是什么 type.
a 有可能是 int, 也有可能是个 custom type, 带 __add__(self, b)
的 method.
先不考虑 a, b 需要 dictionary lookup. 假设 a, b 这两个 PyObject *
已经拿到了,因为你不知道 PyObject 指向什么 type. 所以你必须检查
这样解释:
if (a->type == &intType & b->type == &intType) {
// Fast path for normal int.
c = (int) a->value + (int)b->value
c = Py_BuildValue("i", c)
} else {
fun... 阅读全帖 |
|
r****y 发帖数: 26819 | 15 If you use the return value, such like
cout << func();
compiler will report error.
If func() is a global function, VC compiler will report error too.
For member function, ok if return value not used. |
|
T*******x 发帖数: 8565 | 16 读typedef的trick是这样的:
你先把typedef这个关键字去掉,这个语句就变成了一个变量声明,
再加回typedef,就定义了一个这个变量所属的类型。
比如你这个
typedef void(Receiver::* Action)();
去掉这个typedef,就是一个函数指针变量的声明,
这个指针指向一个函数,这个函数1.没有参数2.没有返回值3.有一定的scope --
必须指向一个成员函数。加回typedef后,就定义了一个相应的类型。
请注意这两个的不同:
void func();
void (*func)();
前者是一个函数的prototype,后者是一个函数指针变量的声明,
我们这里要得是后者(去掉typedef之后)。 |
|
h****e 发帖数: 2125 | 17 said it's more efficient to put often-used and short functions as inline, so
they are taken care of at compile time, to save function calls overhead and
improve performance thereafter. this I understand, but how do u define "short
functions"?? dozens of lines or a
few hundred lines? or some big functions, I can divide them into smaller
funcs and make them inline?? besides, what bad impact if I make some large
funcs inline? |
|
h****e 发帖数: 2125 | 18 similarly, many things can be made a function. for example,
a large func goes through a small block A, and another small block b is used
by some other funcs. a and b share about 60% logic, r u gonna make a function
including both case a and b or not? u know, even totally different logic can
be in one function as well, just use a if/switch branch... |
|
h****e 发帖数: 2125 | 19 similarly, many things can be made a function. for example,
a large func goes through a small block A, and another small block b is used
by some other funcs. a and b share about 60% logic, r u gonna make a function
including both case a and b or not? u know, even totally different logic can
be in one function as well, just use a if/switch branch... |
|
w****p 发帖数: 18 | 20 Please see my Java code for this problem:
public class Main {
static int M; static int N;
/* example here. You can replace to your own array */
/* works for arbitrary dimension array */
static int[][] myarray = {{1,2,3}, {4,5,6},{7,8,9},{10,11,12}};
public static void main(String[] args) {
// TODO code application logic here
N=myarray.length;
M=myarray[0].length;
int[] tt=new int[M];
Func(0,tt);
}
static void Func(int k, |
|
c********e 发帖数: 383 | 21 我觉得他现在就是怎么干的,但是他copy了9次那个func或者聪明一点9次那个func
pointer. |
|
r****t 发帖数: 10904 | 22 用twisted:
reactor.callLater(delay, func)
然后在func里面载接着call reactor.callLater就行了。 |
|
c***d 发帖数: 996 | 23 ☆─────────────────────────────────────☆
emerson (艾默生) 于 (Wed Apr 25 12:55:00 2007) 提到:
假设已有一个函数,已知该函数内部有一个local static变量形如:
void func(...)
{
static int x;
x = bla bla...
}
但该函数没有任何形式返回x的值或地止
现在俺被要求搞一个main(), 反复调用上述函数,在每次调用完后,在main里
dig out那个static变量x的值,但不允许对函数func做任何修改。
俺觉在整个program运行过程中x在memory里有固定地址,
理论上这个要求应该办得到,但不知道怎么搞,急问俺该怎么办?
多多感谢各位好心人指点
☆─────────────────────────────────────☆
kukutf (五脚蟹★酷酷豆腐) 于 (Wed Apr 25 12:57:53 2007) 提到:
以前有game用的工具:gb4
可以追踪变化的内存地址
☆─────────────── |
|
O*****l 发帖数: 13 | 24 请教这里的C++ guru们,谁能解释一下以下几种C++继承中的基类和继承类在内存中是什
么样的结构:
class A
{
int fieldA;
int func();
}
class B : class A
{
int fieldB;
int func();
}
1. inheritance without virtual functions
[This I know] the memory layout is as simple as: [fieldA fieldB]
2. inheritance with virtual functions
[Not quite clear] looks like in debugger memory [vtprA fieldA fieldB]
should there be a vtable pointer for B?
3. multiple inheritance if there is a class C:A and a class D:B, C
4. multiple inheritance with virtual |
|
c**a 发帖数: 316 | 25 But since Derived classes can no longer act as Base,
why we shall override Base virtual func.
We can simply redelare and redefine new virtual func. in Derived. |
|
g****g 发帖数: 310 | 26 tried 12 virtual funcs vs 1 virtual funcs,
NO DIFFERENCE! |
|
w***y 发帖数: 78 | 27 "new" is a constant so you'd better declare func as
int func(const char *in = "new"); |
|
s****n 发帖数: 700 | 28 1 #include
2
3 int mat[10][20];
4
5
6 void func(float **p){
7 int i,j;
8
9 for(i=0; i<10; i++)
10 for(j=0; j<20; j++)
11 printf("%d\n", p[i][j]);
12
13 }
14
15
16 int main()
17 {
18 int mat[10][20];
19 int i,j;
20
21 for(i=0; i<10; i++)
22 for(j=0; j<20; j++)
23 mat[10][20] = i + j;
24
25 func(mat);
26 return 0;
27 }
似乎错误是int **p不能access MAT数组的内容, 应该怎么修改才可以呢? 非常感谢 |
|
X****r 发帖数: 3557 | 29 二阶数组和指针的指针根本是两码事啊。你定义
void func(float p[10][20]){ 或者
void func(float (*p)[20]){
就对了。 |
|
w**********8 发帖数: 121 | 30 Base() // base a
Base(const Base&)// func(a)
Base(const Base&)// base b = return value
~Base()// b in func
~Base()// a
~Base()//b
i.
get |
|
j*****k 发帖数: 1198 | 31 比如有下面一个decorator, 怎么调用?
def decorator(func,aa):
def wrapper(*args, **argd):
if aa:
func(*args, **argd)
return wrapper
@decorator
def myfunc(a1,a2)
or
@decorator(True)
def myfunc(a1,a2)
都不行。
谢谢 |
|
k***r 发帖数: 4260 | 32 把aa定义在decorator外面试试看,比如
aa = False
def mydecorator(func):
def wrapper(*args, **argd):
if aa:
func(*args, **argd)
return wrapper
|
|
i*****t 发帖数: 636 | 33 举个简单例子,比如一个function有两个输入,第一个是整数数组,第二个是数组的si
ze,在主程序中调用时数组大小跟数组是一致的,比如
int arr[5] = {1, 2, 3, 4, 5};
func(arr, 5);
但如果不一致,比如上述例子中第二个输入为10,那么怎么在func中check呢?如果无法
check的话应该怎么处理呢?thanks |
|
O*******d 发帖数: 20343 | 34 如果需要把auto_ptr的指针当成函数参数,可以直接使用raw pointer,就是用get()。
这是比较安全的用法。
func(int * pInt)
{
.
.
}
auto_ptr a(new int());
func(a.get()); |
|
z****e 发帖数: 2024 | 35 你是说,只要func里边,不delete,auto_ptr a 在外边仍然有ownership 对吧?因为
不是,release()。
如果func里边delete pInt 了,咋整?外边的 a 咋办? |
|
p***o 发帖数: 1252 | 36
那说明这个func的设计有问题。除非这个func功能就是释放pInt,要不然
绝对不要在里面delete pInt。 |
|
j***i 发帖数: 1278 | 37 用这个template
我还是不能用变量call
func<4>()可以
int n=4;
func(n)()不行丫 |
|
j***i 发帖数: 1278 | 38 用模板还是解决不了我的问题
还是不可以用
func()call
只能yong
func<4>() 结果还是没有达到变位数 |
|
t****t 发帖数: 6806 | 39 OK, you win. here's my refined example. comments on next post.
#include
using namespace std;
unsigned int global_var;
void* func(void*) {
unsigned int x=0;
global_var = 1;
for (long i=0; i<10000000000L; i++) {
x=x*2;
x+= global_var;
}
cout<
}
void* func1(void*) {
global_var=2;
}
int main()
{
pthread_t t1, t2;
pthread_create(&t1, NULL, func, NULL);
sleep(3);
pthread_ |
|
t****t 发帖数: 6806 | 40 func() will repeatly make x*=2 and x+=global_var.
if global_var is 1, then the final result should be (unsigned)-1.
if global_var changes to 2 in the middle, then the final result should be (
unsigned)-2. straightforward enough.
func1() will change the global_var to 2.
func() will start first. then after 3 sec, func1() will change global_var to
2. so the final result should be (unsigned)-2.
the length of loop is arbitrary, which makes my computer execute the loop
for more than 3 seconds.
now her |
|
j***i 发帖数: 1278 | 41 就是这个,
比如有个 class c
我要是
class c:
def func():
就成定义一个新的c , 原来的没有了
好像也不能 c.func=f ,不知道怎么龙,
大大在解答下 |
|
j***i 发帖数: 1278 | 42 恩,我是了下,对的
我还有另外一个问题
如果我想家的是已有的method的一个overload 如何?
class c 有一个method func(int)
我想加一个 func(int,int)的overload 该如何? |
|
z****e 发帖数: 54598 | 43 5年?50年都没戏
我就没见过严肃的应用用js搞的
都是破网站,赚不了几个钱的
都在拼命山寨马云,这不是搞嘛
马云本来就是山寨ebay的,然后再山寨马云
能有几个钱赚?要么就是卖广告
social泡泡,现在这些都混不下去了
开始裁员了,你说这些有用么?
js要想做严肃的应用
第一,把类型给定下来,否则var来var去
根本没发看,如果是静态类型的话
ide可以帮忙显示这个到底是什么,好很多
其次第二,封装要搞上去,就是object
否则一堆1st class func,互相之间冲突
连命名都无法统一,搞毛
后台大系统,现在演变到一个人维护几万行代码正常
一个项目组就是2-3个人开工,一般维护就2个人
1个人机动,你这种搞法,能看懂代码才见鬼
就是java代码,几万行看下来,我都会经常骂娘
如果是var+func的搞法,我靠,估计我马上寻思跳槽了
谁傻逼才会去维护这种代码,这就是屎坑 |
|
z****e 发帖数: 54598 | 44 5年?50年都没戏
我就没见过严肃的应用用js搞的
都是破网站,赚不了几个钱的
都在拼命山寨马云,这不是搞嘛
马云本来就是山寨ebay的,然后再山寨马云
能有几个钱赚?要么就是卖广告
social泡泡,现在这些都混不下去了
开始裁员了,你说这些有用么?
js要想做严肃的应用
第一,把类型给定下来,否则var来var去
根本没发看,如果是静态类型的话
ide可以帮忙显示这个到底是什么,好很多
其次第二,封装要搞上去,就是object
否则一堆1st class func,互相之间冲突
连命名都无法统一,搞毛
后台大系统,现在演变到一个人维护几万行代码正常
一个项目组就是2-3个人开工,一般维护就2个人
1个人机动,你这种搞法,能看懂代码才见鬼
就是java代码,几万行看下来,我都会经常骂娘
如果是var+func的搞法,我靠,估计我马上寻思跳槽了
谁傻逼才会去维护这种代码,这就是屎坑 |
|
z****e 发帖数: 2024 | 45 1)试试func(x)=某数
2)试试去掉const,然后 func(0);
3)查 const member function
最厚建议你继续google |
|
j*******d 发帖数: 8834 | 46 2) x will not be touched inside func()
3) func() does not modify any member variables or states |
|
j*******d 发帖数: 8834 | 47 那你要看这个func干些啥了,如果只是一些pure userland的processing,而且不heavy,lock有啥不可?
我不知道copy od有多expensive, 而且ORDER这个class能被copy吗?有自己的copy
constructor吗?或者,如果那个func会call 一些ORDER的non-const methods,那od本身就会被改变,你还得copy回去吧?如果要copy 回去岂不是明白的race condition |
|
j*******e 发帖数: 674 | 48 By looking at the following code, I am confused by line 3.
Line 3 is not a special case of the base template, it is more like a "class
overload".But it can be compiled successfully.
The obj1 in line 7 is defined acorrding to line 3, but failed to compile.
How come?
=========================
template class Bar{}; //Base template
template class Bar{}; // Specialization, which is good
template class Bar阅读全帖 |
|
C***y 发帖数: 2546 | 49 我有两个function,一个传入pointer,另外一个传入refernce
例如:
void func(int& a);
void func(double* a);
有办法为这两个function写一个function template吗?
Thanks! |
|
X****r 发帖数: 3557 | 50 I'm curious how "int&" and "double*" are used exactly the same?
Anyhow, if this is indeed the case, you can write
template void func(T a) {
//...
}
However, note that this may not work as you expected: to invoke
T=int&, you're likely to need to write "func(x)" for int x,
because by default T=int for int x. |
|