由买买提看人间百态

topics

全部话题 - 话题: func
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)
C***y
发帖数: 2546
1
来自主题: JobHunting版 - 问个C++ virtual function的问题
有没有办法强制基类中定义的pure virtual function在所有的继承类中实现
For example:
class A
{
public:
virtual void func() = 0;
};
class B: public A
{
public:
void func() { std::cout<<"In B"< };
class C: public B
{
public:
void func() { std::cout<<"In C"< };
class C中也必须实现 func,否则报错
C***y
发帖数: 2546
2
来自主题: JobHunting版 - 问个C++ virtual function的问题
有没有办法强制基类中定义的pure virtual function在所有的继承类中实现
For example:
class A
{
public:
virtual void func() = 0;
};
class B: public A
{
public:
void func() { std::cout<<"In B"< };
class C: public B
{
public:
void func() { std::cout<<"In C"< };
class C中也必须实现 func,否则报错
e*********l
发帖数: 136
3
来自主题: JobHunting版 - google这是什么意思?
内存那个有意思
是这样的
|表示栈帧的分割 || 表示栈顶
没有的话只是这样
.... function || free stack space (undefined values)
加了之后是
..... function | debug func || free stack space
debug func返回之后可以看到
..... function || free stack space(之前debug func留下来的栈帧没有清理,阴差
阳错对了)
比如free space全是零,然后有个二级pointer指向free space的某个地方,这样读取0作为二级指针的值,然后就是引用地址0
但是debug func加了之后,这个二级pointer指向的地方值改变了,不再是零了。所以二级指针可以用了
f*********m
发帖数: 726
4
谢谢,重新给个例子:
void func(type arg){
...
arg += 1;
func(arg);
...
}
vs.
void func(type& arg){
...
arg += 1;
func(arg);
...
}
当然,传递效率是一个问题。除了这个以外,这两种用法在recursive中还会不会有其
他的不同,比如最终结果。感觉上是不用reference那么各个arg是独立的,不过在
stack理由很多的arg copy,他们的值不一定一样。而用了reference,stack中只有一个
arg,每一次对arg的修改都会影响到整个stack,因为整个stack中只有一个arg。不知我
的理解对否?
recursive应用中哪种arg更好呢?
d********g
发帖数: 10550
5
来自主题: JobHunting版 - 准备不好面试就是会悲剧
这么简单也挂,不应该啊。这题考点就两个,1是Python list内元素可以是任意对象的
概念,2是Python里赋值是传引用的概念
传引用这个,最常考的是交换a、b的值
只需要
a, b = b, a
即可。只要答上来保准面试官眼睛发亮
Python经常考的是一题多解,所谓Pythonic way(文艺解法)和传统(二逼)解法
比如一道binary tree遍历:
给一个tree和一个func,输出一个func过滤后的in-order list
二逼解法:recursion,可以在recursion过程中用func,也可以在最后用。和别的语言
没什么区别,不好看,不多说了
文艺解法:art_list = map(flatten(tree), func),然后flatten实现一个简单的in-
order遍历。这么做可以表明你对map/filter之类的掌握程度
Python的list comprehension也是常考的,偏技术的考官都期待你用文艺解法
不过遇到非技术的考官,你说太文艺了反而听不懂,那就尽量回答得二逼一点
d********g
发帖数: 10550
6
来自主题: JobHunting版 - 准备不好面试就是会悲剧
这么简单也挂,不应该啊。这题考点就两个,1是Python list内元素可以是任意对象的
概念,2是Python里赋值是传引用的概念
传引用这个,最常考的是交换a、b的值
只需要
a, b = b, a
即可。只要答上来保准面试官眼睛发亮
Python经常考的是一题多解,所谓Pythonic way(文艺解法)和传统(二逼)解法
比如一道binary tree遍历:
给一个tree和一个func,输出一个func过滤后的in-order list
二逼解法:recursion,可以在recursion过程中用func,也可以在最后用。和别的语言
没什么区别,不好看,不多说了
文艺解法:art_list = map(flatten(tree), func),然后flatten实现一个简单的in-
order遍历。这么做可以表明你对map/filter之类的掌握程度
Python的list comprehension也是常考的,偏技术的考官都期待你用文艺解法
不过遇到非技术的考官,你说太文艺了反而听不懂,那就尽量回答得二逼一点
b******7
发帖数: 92
7
数组作参数要带上长度
void func(int a[],size_t len)
c/c++不能直接用参数传递数组,而将其转化为指针传递
上面的定义等价于void func(int * a,size_t len)
测试如下的case就可知道
void func(int a[], size_t len)
{
cout< }
int main()
{
int a[] = {1,2};
cout< func(a,sizeof(a)/sizeof(int));
return 0;
}
b*******e
发帖数: 123
8
来自主题: JobHunting版 - 上一道小题
10 不是palinedrome. 第一个可以用try and error once...
Full code 太烦了。。
vector getall(int m, int n){
string nstr = to_string(n);
vector res;
function func = [](string s,bool addone){
int isodd = s.size() % 2;
int half = stoi(s.substr(0,(s.size()+1)/2));
string res = to_string(half+(addone?1:0));
string ires = res.substr(0,res.size()-isodd);
reverse(ires.begin(),ires.end());
res += ires;
if(res.size() > s.size()+1){
res = string(s... 阅读全帖
t*******r
发帖数: 22634
9
这个俺改改不就好了么。。。俺不过就是省了一步搞了个提速优化么。。。
让俺用 “伪 Yacc” 再写一个:
“a是素数 <=> a是大于1的自然数, 且a不被任何小于a的素数整除”
“伪 Yacc” 的东东就是类似于:
::=
(func()
operator
func())
&& (func() > 1)
&& (func(set_of_smallest_n_primes>) == true)
::=
done :-)

"
c*******h
发帖数: 1096
10
来自主题: Programming版 - what's wrong with the following codes?
i have a `main' function that calls the `func' function
defined in `tem_aux.h'.
////////// the following is tem_main.cpp ///////////
#include "tem_aux.h"
int main(void) {
int a = 4;
func(a);
return 0;
}
////////// the following is tem_aux.h ///////////////
#ifndef _TEM_AUX_H_
#define _TEM_AUX_H_
template void func(T val);
#endif
////////// the following is tem_aux.cpp //////////////
#include "tem_aux.h"
template void func(T val) {
int i = 2;
}
when i compile usi
n**d
发帖数: 9764
11
来自主题: Programming版 - pointer to function
1. why do both a[0] and a[1] work?
2. why do both a[0]('a') and (*a[0])('a') work?
#include
using namespace std;
typedef void FT(char);
typedef void (*FT_p)(char);
void func(char ch)
{ cout << "func is called by [" << ch << "]" << endl; }
int main()
{
FT *a[2];
a[0] = func;
a[0]('a');
(*a[0])('a');
a[1] = &func;
a[1]('a');
(*a[1])('a');
}
o******2
发帖数: 159
12
来自主题: Programming版 - 请教cosnt的使用
看了书,也google了一些网页,但是还是对const的使用模棱两可。有没有大牛能简单
几句启发一下。
具体来说,以下三种表示有和不同呢?
1) const func(x);
2) func(const x);
3) func(x) const;
好像1)容易理解点,即func(x) return的值是constant,不可变。但2)和3)似乎没有
多大区别。
d****n
发帖数: 1637
13
来自主题: Programming版 - return value of a python function...
My simple ideas.
1. use global in your function
def func( ):
global myLargeObj
modify myLargeObj
2. pass obj by parameter but all your change is on a mutable obj.
def func(myLargeObj):
modify myLargeObj
"""
Note: dont use return statement here.
"""
E.g.
>>> d={}
>>> d[1]=123
>>> def func(dd):
... del dd[1]
...
>>> func(d)
>>> d
{}
>>>
C***y
发帖数: 2546
14
【 以下文字转载自 JobHunting 讨论区 】
发信人: Chevy (Chevy), 信区: JobHunting
标 题: 问个C++ virtual function的问题
发信站: BBS 未名空间站 (Thu Oct 20 17:20:28 2011, 美东)
有没有办法强制基类中定义的pure virtual function在所有的继承类中实现
For example:
class A
{
public:
virtual void func() = 0;
};
class B: public A
{
public:
void func() { std::cout<<"In B"< };
class C: public B
{
public:
void func() { std::cout<<"In C"< };
class C中也必须实现 func,否则报错
e******e
发帖数: 458
15
来自主题: Programming版 - 也问个二维数组的函数传递问题
1. func(int (&array)[3][4]);
2. func(int (*array)[3][4]);
3. func(int array[3][4]);
这几个函数是等价的吗?有什么区别吗?
特别是array[3][4]到底是传的指针,还是说在在传给func的时候,已经在heap或者
stack上分配了size(int)*3*4的空间了?
谢谢。
d*******g
发帖数: 37
16
来自主题: Programming版 - matlab 问题
请问在linux上运行matlab,怎么同时做到后台运行,又能从命令行读入参数。
例如,我的函数是 f=func(x), 放在同名的脚本func.m里
在linux server上我运行命令
matlab -r "func(1)" 程序把1付给x,一切正常
但这样我就不能用 nohup matlab -r "func(1)" & 去后台运行了,
出现 + Suspended (tty output) 程序永远也不能运行,问题在于后台运行不能同
时从命令行读参数,那么怎么才能解决这个问题呢。谢谢
a****e
发帖数: 9589
17
来自主题: Programming版 - python question
最先想到re,然后是mod(%),range 想的妙(佩服),textwrap 从未接触过(学习
了),其他的从直觉上觉得效率不高,pass了。
写了个测试程序如下:
import timeit
s = "0001001101111111"
def mtimeit(func):
def wrap(*args, **kwargs):
t = timeit.Timer(func)
print func.func_name,
print min(t.repeat(number=1))
return func
return wrap
@mtimeit
def re_func():
import re
return '-'.join(re.findall('\d{4}', s))
@mtimeit
def mod_func():
return ''.join(x if i%4 or i==0 else '-'+x for i,x in enumerate(s))

@mtimeit
de... 阅读全帖
p**o
发帖数: 3409
18
来自主题: Programming版 - Python做计算怎么只用一个核?
python3的concurrent.futures有一些便利,可以在一个with语句块里多进程。
python2可以自己摸索一下multiprocessing
偷懒的话可以参考我下面的代码(从我自己写函数库里扒出来的),
实现的是一个比较通用的进程池链(把几个进程池串联起来)。
后面附一个使用示例。
要睡觉没时间慢慢解释了,看得懂就用,看不懂就算了...
文件 parallel.py
# -*- coding: utf-8 -*-
#
#
""" Helper functions and templates for multiprocessing.
http://docs.python.org/2/library/multiprocessing.html#examples
http://hg.python.org/cpython/file/3.3/Lib/concurrent/futures/pr
http://www.ibm.com/developerworks/aix/library/au-threadingpytho
"""
__all__ = [
'ProcessPo... 阅读全帖
z****e
发帖数: 54598
19
没有ioc,底层程序员写出内存泄漏代码的可能性会大很多
之所以java特别用ioc,因为java是pure oo
每一个东西都是object,所以inject时候就塞入object就行了
但是其他语言不是啊,妈蛋,有可能是func
你塞入func啥意思?而且func有啥生命周期的说法?
没有啊,object只有object有,func的生命周期?
听起来好怪异啊
z****e
发帖数: 54598
20
来自主题: Programming版 - 关于变量
其实我是第二种
那楼一开始就有问题
其实一开始就应该承认变量的存在
而不是为了自圆其说,否认变量
这就是问题,所以被追问之后
就开始羞恼成怒
你去看coltzhao的回答
两个帖子就结束了
因为immutable是一个relative concept
所以谁真懂谁假懂,一目了然
当然皇帝的新衣还是可以忽悠不少人的
给你个summary
fp并没有否认变量
我说不承认变量,是因为immutable
而immutable是有scope的,之所以这么做
是因为为了复用func,所以需要对输入要求统一的数据结构
class的结构太过于灵活,如果输入class,会造成func跟class绑定
一旦class修改,就会造成func跟着修改
结果灾难,所以最后你干脆别用class得了,这样便于你复用func
所以一开始,楼主就掉入了一个陷阱,而为了自圆其说
不停滴扯蛋,什么数学上不需要变量,我小时候学习变量需要妈妈教
for loop一般美国人理解起来很困难,这都是为了爬出那个坑而编造的谎言
所以越看越好笑,更好笑的是居然有人帮腔,这不是搞吗
真明白fp的就直接告诉你,fp没有否认变量的存在
然后顺... 阅读全帖
p*****2
发帖数: 21240
21
来自主题: Programming版 - 用golang实现了map,大牛给看看?
type Any interface{}
type ArrayOps []interface{}
func (arr ArrayOps) Map(lambda func(Any) Any) ArrayOps {
res := make(ArrayOps, len(arr))
for i, v := range arr {
res[i] = lambda(v)
}
return res
}
func main() {
b := ArrayOps{1, 2, 3, 4, 5}.
Map(func(i Any) Any { return strconv.Itoa(i.(int) * 2) })
fmt.Println(b)
}
d****n
发帖数: 1637
22
来自主题: Programming版 - 怎样能把go写的稍微漂亮一点?
myself- only deal with known error
limiting error types by handling each one specific.
func a(){
handle everything I know else return to caller
}
func b(){
err = a()
handle everything I knew, else send it to caller

}
func c(){
err = b()
handle everthing I knew, else, give to caller
}
V.S. most oop classic try...catch(I might be wrong on this)
func SuperGenericErrorHandleFunction(){

try:
a()
b()
c()
catch err:
switch err{
case a.shit:
case b.shit:
... 阅读全帖
c*****e
发帖数: 3226
23
来自主题: Programming版 - 最近学了一下 Go
再聊聊这个 pointer与 interface 的傻逼关系。
type Foo struct {}
func (f Foo) xyz1() ..
func (f *Foo) abc1()...
type InterfaceXyz interface{
xyz1()
}
type InterfaceAbc interface{
abc1()
}
func Add(a InterfaceXyz)
func Dec(b InterfaceAbc)
var k Foo
Add(k) --> OK
Dec(k) ---> not OK
g:=new(Foo)
Add(g) ---> ok
Dec(g) --> OK
所以一个 object 是否实现了一个 interface 取决于你用的是 value 还是 pointer.
有病而且病的不轻!

要。
zuo
s******u
发帖数: 501
24
来自主题: Programming版 - C++ most vexing parse到底怎么回事?
通常如果把函数指针func作为函数foo的一个参数的话,可以这么写
int foo( int(*func)() )
{
return func();
}
然后作为函数指针,加不加这个*是没有区别的,所以简化成
int foo(int(func)()) { ... }
再接下来,函数的参数可以只给类型不给命名,表示我在函数内部不会使用到这个参数
,继续简化成
int foo(int()()) { ... }
因为没有函数变量的名字,所以第二个括号是可有可无的
int foo(int()) { ... }
把第一个int换成你这里的A,把第二个int换成你这里的B于是就有了
A a(B());
当然就是一个函数声明了
z****e
发帖数: 54598
25
把account单独提出来做成一个object
然后所有关于这个account的操作
无论是read,还是write,还是read+write
塞入这个object,然后声明所有的func为synchronized
就可以了
比如
public class Account{
private int balance;
public synchronized int check(){
return balance;
}
public synchronized void deposit(int cash){
this.balance += cash;
}
}
synchronized func 相当于synchronized(this){
...
}
public void synchronized func(){...}
等价于
public void func(){
synchronized(this){...}
}
syncrhonized意思就是对于后面这个object
所有的thread,无论做什么syncrhonized的操作
都是互斥的
因为这里只有一个balance
所以你直... 阅读全帖
z****e
发帖数: 54598
26
来自主题: Programming版 - 玩go还是要玩OO
举个di的例子
a,b,c三个class
a中用了b.func
b中用了c.func
c中用了a.func
这三个classes凑成一坨
里面任何一个class改动了,其他两个都需要跟着compile
随着这个互相引用的classes变多
最后随便一个小改动,都会导致整个项目重新compile
就很麻烦
如果有了di
这些class的改动和编译都是独立的,你改了一部分,重新编译这部分就好了
剩下你不用管,这就实现了比较高级的封装
连compile什么都是独立的,而要实现这个,你不得不找到一个proxy
否则根本无法di,我要inject进去一个func,那也得有个target才行
否则怎么inject?
这个功能不重要吗?我觉得相当重要
对于_大_项目来说
小项目随便搞,无所谓,但是_大_项目当然很重要
oop之所以被搞出来,捧到一个比较高的位置上去
很重要一个原因就是用来address大项目带来的各种问题
go发明出来,目的也是为了大项目,最后殊途同归也是意料之中的事
f*******t
发帖数: 7549
27
package main
import (
"fmt"
)
func compute(addSample func(int)) {
addSample(1)
addSample(2)
}
func main() {
var samples []int
addSample := func(n int) {
samples = append(samples, n)
}
defer fmt.Println(len(samples), "samples are added. expecting 2")
compute(addSample)
}
实际输出是
0 samples are added. expecting 2
文档解释:
A deferred function's arguments are evaluated when the defer statement is
evaluated.
所以千万别把defer当closure用,否则有可能出难以解释的bug
c*******h
发帖数: 1096
28
来自主题: Computation版 - 问个matlab function handle的问题
我有一个函数 func(x, para),要将它作为参数传给另外一个函数 foo
例如 foo( @(x)func(x,para), y, z )
那么 foo 函数应该怎么定义?
如果写成
function ret = foo( @(x)func(x,para), y, z )
那样是语法出错的
如果写成
function ret = foo( func, y, z )
那样又不能将 para 传进去
应该怎么写呢?
d*******g
发帖数: 37
29
来自主题: EE版 - matlab 问题
请问在linux上运行matlab,怎么同时做到后台运行,又能从命令行读入参数。
例如,我的函数是 f=func(x), 放在同名的脚本func.m里
在linux server上我运行命令
matlab -r "func(1)" 程序把1付给x,一切正常
但这样我就不能用 nohup matlab -r "func(1)" & 去后台运行了,
出现 + Suspended (tty output) 程序永远也不能运行,问题在于后台运行不能同
时从命令行读参数,那么怎么才能解决这个问题呢。谢谢
d*******g
发帖数: 37
30
来自主题: Mathematics版 - 标 题: matlab 问题
标 题: matlab 问题
发信站: BBS 未名空间站 (Sun Apr 15 17:48:29 2012, 美东)
请问在linux上运行matlab,怎么同时做到后台运行,又能从命令行读入参数。
例如,我的函数是 f=func(x), 放在同名的脚本func.m里
在linux server上我运行命令
matlab -r "func(1)" 程序把1付给x,一切正常
但这样我就不能用 nohup matlab -r "func(1)" & 去后台运行了,
出现 + Suspended (tty output) 程序永远也不能运行,问题在于后台运行不能同
时从命令行读参数,那么怎么才能解决这个问题呢。谢谢
c*****y
发帖数: 80
31
来自主题: Science版 - matlab问题?
如何定义一个变量a,在程序主体main.m中辅值使用,在
辅助函数程序func.m中也能使用?
例如:
main.m
...
...
for a=0:1
func();
end...
func.m
function [p]=func(t,x)
p=a^2*t*x
z****e
发帖数: 54598
32
来自主题: History版 - 中文为什么没有字母化
汉字虽然是一个孤立的object
但是汉字和词的关系其实是一个有向图
那这个复杂度就高很多了,关键这个object没有封装其行为
就是封装不彻底,不像java,像脚本,就是func和object都孤立滴存在
func还是1st class citizen,谓语动词都是1st class citizen func
而且3000个汉字已经比常用的法语词汇(2000+)多了
等汉字组成常用的词汇,就更要远超常用的法语词汇了
而真正说话的时候,其实听的不是字
而是词,比如说汉语,hanyu,你听到的重音只有一个,只在'hanyu上
而不是'han'yu,也就是这个词的重音不会出现在后一个字上
那人耳朵的敏感度就没那么高,所以最后不得不去记忆整个词
而非具体的字,写起来还好,但是object分解下去也是一个个具体的types
但是问题是汉字并不是由简单的types组成的,设计时候也没有考虑基本的字母一样的
组成
所以导致不同汉字写出来不一样,互相之间也没啥必然联系
所以无法再细分下去,class细分下去都可以具体到int, char这些

,
D***r
发帖数: 7511
33
python最大的好处是写function wrapper方便
相当于函数继承,不用通过类
比如下面的例子
def add_fuck(func):
def wrapper(name, n):
return "fuck " + name
return wrapper
def count_fuck(func):
def wrapper(name, n):
return "%s %d times" %(func(name, n), n)
return wrapper

@count_fuck
@add_fuck
def greet(name, n):
return name
如果执行greet('五毛', 10) 结果就是
fuck 五毛 10 times
数据处理的时候常常需要这种局部修饰

发帖数: 1
34
这种特性在只要支持higher order function的语言面前根本不需要什么@这种花里胡哨
的语法糖


: python最大的好处是写function wrapper方便

: 相当于函数继承,不用通过类

: 比如下面的例子

: def add_fuck(func):

: def wrapper(name, n):

: return "fuck " name

: return wrapper

: def count_fuck(func):

: def wrapper(name, n):

: return "%s %d times" %(func(name, n), n)

n*******s
发帖数: 482
35
来自主题: JobHunting版 - C++ constructor problem
code :
class Base{
public:
Base(){cout << "Base()" << endl;}
Base(const Base&){cout << "Base(const Base&)" << endl;}
~Base(){cout << "~Base()" << endl;}
};
Base func(Base b){return b;}
void test1(){
Base a;
func(a);
}
void test2(){
Base a;
Base b = func(a);
}
int main(){
test1();
cout<<"----------"< test2();
return 0;
}
// from the output,
test1() will
1. first call Base's default constructor for "Base a"
2. call Base's copy constructor since parameter is passed by value
3. call Base
l********n
发帖数: 54
36
来自主题: JobHunting版 - 一个c++题(exception handling)
说的有道理。假设子类继承后,只throw符合父类类型的异常(可以0个到n-1个)如下面,因为有catch可以接受。
void virtual func() throw (float)
不过试了下面的,我又觉得糊涂了。
void virtual func() throw(int, int); // can compile
void virtual func() throw(int, int, int); // can compile
y*********e
发帖数: 518
37
来自主题: JobHunting版 - what is java enclosure-今天被hm问倒了
感觉对方是在问 Closure。
这个是 Java 对 Lambda 表达式的实现。Java 7 已经确定在语法上支持这个。
Java 6或者以前的版本只能靠 interface + anonymous class 来实现。
若是做过 functional programming(比如haskell),应该对 Lamdba 表达
式比较熟悉。
从C++的角度来看,就是 function pointer,但是它是 Strongly Typed。
举例代码来说明。假设要对二叉树遍历,代码很好写,比如:
void inOrder(Tree tree) {
if (tree != null) {
inOrder(tree.getLeft());
System.out.println(tree.getValue());
inOrder(tree.getRight());
}
}
但是如上的函数只是把Node的值打印到终端。若是要变得generic一点,要遍历的
过程中,能引入一个函数,对每一个Node执行这个函数,该多好。这样就引入了一
个概念:能... 阅读全帖
o*****e
发帖数: 99
38
问题的关键是每当前面单词选定一个字母,后面就不能重复了。
(不知道相邻单词能不能取同一个字母,假设不能)
那就是一个不复杂的递归问题了。
My pseudo code,
String array size n
S0 ~ Sn-1
Output out[0 ~ n-1]
void func(S[], out[], k) {
if (k==n) {
print(out);
return;
}
for(i in 0 ~ strlen(S[k]-1){
if (S[k][i] not in Out[0 ~ k-1]) {
out[k] = S[k][i];
func(S, out, k+1);
}
}
}
main:
func(S, out, 0)
How to design efficiency algorithm to find whether
char S[k][i] is in string Out[0 ~ k-1]
A simple hash ... 阅读全帖
o*****e
发帖数: 99
39
问题的关键是每当前面单词选定一个字母,后面就不能重复了。
(不知道相邻单词能不能取同一个字母,假设不能)
那就是一个不复杂的递归问题了。
My pseudo code,
String array size n
S0 ~ Sn-1
Output out[0 ~ n-1]
void func(S[], out[], k) {
if (k==n) {
print(out);
return;
}
for(i in 0 ~ strlen(S[k]-1){
if (S[k][i] not in Out[0 ~ k-1]) {
out[k] = S[k][i];
func(S, out, k+1);
}
}
}
main:
func(S, out, 0)
How to design efficiency algorithm to find whether
char S[k][i] is in string Out[0 ~ k-1]
A simple hash ... 阅读全帖
l*****a
发帖数: 14598
40
来自主题: JobHunting版 - 请各位大牛来做小学题
class animal
class dog extends animal
void func(animal[] animals)
void func2(List animalList)
==========================================
animal[] animals;
dog[] dogs;
List aniList;
List dogList;
下面哪些有问题:
func(animals);
func(dogs);
func2(aniList);
func2(dogList);
c*****a
发帖数: 808
41
来自主题: JobHunting版 - 问个complexity问题
def func(i):
if i==0:
return
return func(i-1) or func(i-1)
这个是不是 o(n^2)?
return T(n-1) or T(n-1)看起来像这样
l*****a
发帖数: 14598
42
来自主题: JobHunting版 - 报个电面面经,估计没戏了
想了一下,对层而言,确实可以用DFS.
print bt level by level的一个做法就是用dummy node,每次用前一次的结果
求这次的。。。
TreeNode dummy=new TreeNode();
dummy.next=root;
func(dummy.next);
public void func(TreeNode list){
//generate list of next level;
func(nextlist);
//print list of current level;
}
这个甚至是O(1)space 吧(不考虑callstack)
b****g
发帖数: 192
43
void func(int *ptr)
{
ptr = (int *)malloc(sizeof(int) * 10);
}
void main(void)
{
int *ptr = 0;
for(int i=0; i<10; i++)
{
func(ptr);
}
}
问题:for循环里面的func(ptr)都干了些什么?
我回答分配了10次,每次10个整形的空间。
又问:main()函数要怎么改才能free由malloc()分配的的空间?
我就不回了。
s****a
发帖数: 6521
44
来自主题: PhotoGear版 - 问个shell编程小问题 (转载)
【 以下文字转载自 Linux 讨论区 】
发信人: shorea (未注册用户), 信区: Linux
标 题: 问个shell编程小问题
发信站: BBS 未名空间站 (Thu Nov 24 11:57:24 2011, 美东)
请问,可不可以把 “-”这种类型的参数传递到函数里?
具体点说,我在一个文件里定义了一些函数,里面有用"getopts"接收参数的行。假设
这个函数叫func()
然后我在另一个脚本里用source调用这个文件;
然后下面的语句想要这样调用函数
func -i -o ....等等
发现不行。
而如果在终端下,source了文件之后,直接命令行输入 func -i -o ...等等,却可以
实现。
也就是说,函数里的getopts语句可以获取命令行里的参数,却不能用“脚本里的语句
”这样的方式来执行。
有什么办法么?
d**********o
发帖数: 1321
45
来自主题: WebRadio版 - 潜水员冒泡兼征版友意见
所有测试文件
aamain2.c-
aamain2.expected
aamain2.in
aamain2.out
aamain2.tm
aamain3.c-
aamain3.expected
aamain3.out
aamain4.c-
aamain4.expected
aamain4.out
aamain4.tm
aamain5.c-
aamain5.expected
aamain5.out
aamain.c-
aamain.expected
aamain.out
aamain.tm
aasmaller.c-
aasmaller.expected
aasmaller.out
all.c-
allErrors2.c-
allErrors2.expected
allErrors2.in
allErrors2.out
allErrors.c-
allErrors.expected
allErrors.in
allErrors.out
all.expected
all.in
all.out
arglist2.c-
arglist2.expected
arglist2.out
arglist... 阅读全帖
d**********o
发帖数: 1321
46
来自主题: WebRadio版 - 潜水员冒泡兼征版友意见
所有测试文件
aamain2.c-
aamain2.expected
aamain2.in
aamain2.out
aamain2.tm
aamain3.c-
aamain3.expected
aamain3.out
aamain4.c-
aamain4.expected
aamain4.out
aamain4.tm
aamain5.c-
aamain5.expected
aamain5.out
aamain.c-
aamain.expected
aamain.out
aamain.tm
aasmaller.c-
aasmaller.expected
aasmaller.out
all.c-
allErrors2.c-
allErrors2.expected
allErrors2.in
allErrors2.out
allErrors.c-
allErrors.expected
allErrors.in
allErrors.out
all.expected
all.in
all.out
arglist2.c-
arglist2.expected
arglist2.out
arglist... 阅读全帖
d******8
发帖数: 2191
47
方法是用setInterval函数
var i1=setInterval( function(){ clearInterval(i1);yourfunction();},10);
var i2=setInterval(function(){ clearInterval(i2);yourfunction();},10);
这样i1,i2对应的任务就是并行的。
由此类推,
var i_array=new Array();
function Parallel(func,datas){
$(datas).each(function(i,v){
i_array[i]=setInterval(function(){
clearInterval(i_array[i]);
window[func](datas[i]);
},10);
});
}
当然这里假设func函数至多接受一个参数。
q*********u
发帖数: 280
48
【 以下文字转载自 JobHunting 讨论区 】
发信人: yinyueyouge (隐约有歌), 信区: JobHunting
标 题: Re: java enclosure是什么-今天被hm问倒了
发信站: BBS 未名空间站 (Fri Oct 22 09:27:57 2010, 美东)
感觉对方是在问 Closure。
这个是 Java 对 Lambda 表达式的实现。Java 7 已经确定在语法上支持这个。
Java 6或者以前的版本只能靠 interface + anonymous class 来实现。
若是做过 functional programming(比如haskell),应该对 Lamdba 表达
式比较熟悉。
从C++的角度来看,就是 function pointer,但是它是 Strongly Typed。
举例代码来说明。假设要对二叉树遍历,代码很好写,比如:
void inOrder(Tree tree) {
if (tree != null) {
inOrder(tree.getLeft());
System.out.p... 阅读全帖
s****a
发帖数: 6521
49
来自主题: Linux版 - 问个shell编程小问题
请问,可不可以把 “-”这种类型的参数传递到函数里?
具体点说,我在一个文件里定义了一些函数,里面有用"getopts"接收参数的行。假设
这个函数叫func()
然后我在另一个脚本里用source调用这个文件;
然后下面的语句想要这样调用函数
func -i -o ....等等
发现不行。
而如果在终端下,source了文件之后,直接命令行输入 func -i -o ...等等,却可以
实现。
也就是说,函数里的getopts语句可以获取命令行里的参数,却不能用“脚本里的语句
”这样的方式来执行。
有什么办法么?
r*******y
发帖数: 290
50
来自主题: Programming版 - 问个虚函数的作用
because virtual function is bound at runtime
non-virtual func is bound at compilation time
in other words, virtual call is something like this:
(vptr+some address offset)->func, the vptr belongs to the actual class
non-virtual call is something like class->func, class is determined after
compilation

+
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)