由买买提看人间百态

topics

全部话题 - 话题: 函数参数
1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)
c**n
发帖数: 1761
1
【 以下文字转载自 Linux 讨论区 】
发信人: cvin (cvin), 信区: Linux
标 题: Matlab里面居然可以函数参数个数不一致?
发信站: BBS 未名空间站 (Wed Oct 29 02:19:57 2008), 转信
比如函数的参数是4个,调用的时候用三个?
究竟怎么算,按照顺序?最后一个省略吗?
t******4
发帖数: 134
2
来自主题: JobHunting版 - 借人气问个C递归函数的问题
送进函数之前存一个?
函数多一个参数专门往下传root指针?
啥目的呢

:如果函数参数是二叉树的指针,有没有办法可以把根指针保存下来?
y**b
发帖数: 10166
3
来自主题: Programming版 - 问个参数读入和传递的设计问题
多谢pptwo and goodbug! 按这个思路做了,感觉不错,有几个问题再请教一下:
1. 这个singleton维护的hashmap类似于一个全局变量,无需传递函数参数,
任何对象和函数都可以取用,很方便,可是总觉得有点特别。想问一下这样做
很普遍吗?有个实验室开发的一个大型面向对象程序包,读入数据之后进行了
无数的分离和传递,直到每个用到(不同数据部分)的对象都完全用local的数据
结构来维护所需数据,好处是各个对象显得high cohesion, 缺点是非常繁琐、
数据冗余很多。你们觉得那种设计更好?
2. pptwo: You got great flexibility by not hard-coding all the parameters
in that singleton class. 这句话怎么理解?我想把所有数据一次性读入到
该singleton class,这样失去flexibility?
3. 大量进程读(一次)一个小文件(比如singleton class存储的内容)开销不大,
但是读那些很大的数据文件开销可能很大。比如我在该singleton cla... 阅读全帖
c***d
发帖数: 996
4
☆─────────────────────────────────────☆
kingsyl (好久没有下棋了。。.) 于 (Fri Feb 16 15:16:41 2007) 提到:
下面的例子实现了用户定义的比较函数创建了一个优先队列.
如果对已经 sort好的这个优先队列按照 另外一个用户定义的比较函数进行排序,该
如何
实现?
就是想实现 另一优先队列, 使用另外一个比较函数.
//: C07:PriorityQueue3.cpp
// From "Thinking in C++, 2nd Edition, Volume 2"
// by Bruce Eckel & Chuck Allison, (c) 2001 MindView, Inc.
// Available at www.BruceEckel.com.
// A more complex use of priority_queue
//{L} ../TestSuite/Test
#include
#include
#include
using
i******t
发帖数: 22541
5
来自主题: JobHunting版 - 问个简单的C++ 函数参数问题
reference to pointer问题
void f(const int * & p)
{
int i =0;
i = p[0];
cout<< i< system("PAUSE");
}
int main()
{
int * p =new int[1];
p[0] =102;
f(p);
return 1;
}
这样编译不过去
error C2664: 'f' : cannot convert parameter 1 from 'int *' to 'const int *&'
如果吧函数改一下就可以了void f( int * & p) 或者void f( int * p)
都没问题
奇怪为啥最开始那个不行呢?
l*****n
发帖数: 1648
6
来自主题: JobHunting版 - 借人气问个C递归函数的问题
如果函数参数是二叉树的指针,有没有办法可以把根指针保存下来?
f****n
发帖数: 399
7
来自主题: JobHunting版 - 借人气问个C递归函数的问题
第一次调用之前存一个全局变量为啥不行?多线程的?
[在 liamsun (维) 的大作中提到:]
:如果函数参数是二叉树的指针,有没有办法可以把根指针保存下来?

:...........
c******e
发帖数: 545
8
来自主题: JobHunting版 - 再请教个:C变长参数的传递问题
这种函数都是__cdecl调用,参数从右向左压栈,主调函数清栈。
format string在最左(printf)或次左(fprintf,sprintf...),所以用[BP]访问的时候
位置可预测,然后根据format string生成每个参数的偏移地址。
一般来说函数调用大致顺序(__cdecl)是:
1.主调函数从右到左压参数
2.建立栈帧
1)保存BP(32位下EBP,下同)push bp
2)保存当前栈位置:mov bp,sp
因为BP和SP默认同时用栈段(SS),用BP上可访问参数,下可访问局部变量,一般不用
SP,因为SP总是在变。
3.函数体
4.恢复bp:mov sp,bp pop bp
4.函数返回
5.主函数清栈(xxx是参数大小):add sp,xxx
时间太久可能细节不太准确,不过大致过程应该差不多,可以使用变长参数的两个决定
因素是:1. 右到左压栈 2. 主调函数清栈
c******e
发帖数: 545
9
要是带参数的情况就复杂多了,在传统x86平台上,会涉及至少三个问题:
1. 参数传递的方式:stack(__stdcall,__pascal,__cdecl),register+stack(__
fastcall)
2. 参数传递的顺序:右到左(__cdecl,__stdcall),左到右(__pascal),不定,取
决于compiler(__fastcall)
3. 处理stack:主函数(__cdecl),被叫函数(其他)
如果不特殊说明,函数的calling convention都是默认__cdecl,windows平台上API默
认__stdcall(除了变参函数,这个只有__cdecl可以处理)
这些应该都是比较古老的知识了,现在可能除了搞底层的人都不去管了,从前主要用在
函数库互调和写能被c调用的汇编函数的时候用的。
轻量级嵌入式平台上情况还不一样,主要因为资源有限,一些平台上根本没有参数栈,
函数参数都是保存在全局变量里的,函数本身默认为不可重入。这种情况再声明函数指
针的时候要指明是可重入函数(一般compiler会有特殊的keyword),当然被叫函数也
应该是相同... 阅读全帖
w****h
发帖数: 212
10
【 以下文字转载自 EE 讨论区 】
发信人: wmbyhh (wmbyhh), 信区: EE
标 题: 问一个Matlab编程的问题,函数如何有可变输入参数?
发信站: BBS 未名空间站 (Mon Feb 18 19:59:40 2008)
请问,一个函数,其参数不确定,可能2个,可能多个,但同一类型。
如何设置生成这样的参数可变得函数?
函数中又如何知道有多少参数?
如果是C编程的话,这根本不是问题;但Matlab如何调用这种输入参数可变的函数?
多谢
y**b
发帖数: 10166
11
来自主题: Programming版 - 问个参数读入和传递的设计问题
看看能不能说的清楚:
科学计算程序,一次性从数据文件中读入很多参数,不同的(一个或几个相关参数)要传
递给不同的对象,很多对象还具有这种特点:初始化的时候只需要某些参数,其他动作
时还需要其他参数,比如空间一个多面体,初始化只需要空间坐标和密度等等,而后面
发生移动时还需要时间步长和重力加速度等等(时间步长和重力加速度逻辑上不应该是
该多面体的数据成员)。
第一,我是应该把时间步长/重力加速度等等作为该对象的成员,进行初始化;还是作
为该对象某个成员函数的的形参,想办法传入实参呢?
第二,我想设计一个class/struct来存储所有参数,以便MPI编程时用唯一一个进程来读
取参数,然后将这个存储参数的对象(通过boost.mpi)序列化并一次性broadcast给其他所
有进程(而不是一个参数一个参数地broadcast)。那么将包含所有参数的这个参数对象作
为实参,传递给任意一个只需要某些参数(而不是全部参数)的其它类的成员函数,是不
是很怪异呢?还是应该重新设计该成员函数的形参,使之仅仅获取所需要的参数,但这
样一来需要另行构造这些参数的类型?
谢谢。

发帖数: 1
12
来自主题: Military版 - 半导体这种材料只能两种状态吗

=====================
C++ 工程实践(4):二进制兼容性
原创 2011年03月09日 10:46:00 标签:c++ /library /interface /mfc /class /编译
器 22578
陈硕 (giantchen_AT_gmail)
Blog.csdn.net/Solstice
本文主要讨论 Linux x86/x86-64 平台,偶尔会举 Windows 作为反面教材。
C/C++ 的二进制兼容性 (binary compatibility) 有多重含义,本文主要在“头文件和
库文件分别升级,可执行文件是否受影响”这个意义下讨论,我称之为 library (主
要是 shared library,即动态链接库)的 ABI (application binary interface)。至
于编译器与操作系统的 ABI 留给下一篇谈 C++ 标准与实践的文章。
什么是二进制兼容性
在解释这个定义之前,先看看 Unix/C 语言的一个历史问题:open() 的 flags 参数的
取值。open(2) 函数的原型是
int open(cons... 阅读全帖
b****g
发帖数: 192
13
来自主题: JobHunting版 - 请教一个指针的面试题
函数一共三个参数
貌似是执行完就在地址0x12fec8那里存一个整数,值为val1。
又在地址为val1的地方连着整出来9个int那么,这9个地方存的都是整数val2.
但是我不懂为什么p1也是参数呢?
在函数内部,p1指向的是地址为val1的地方,这里存着第一个val2.
那函数执行完了,p1作为形参指向的地方就可能不是地址val1啦,
那位什么还要把p1作为函数参数呢?
函数里面p1从来就没出现在等号右边,
p1出现在等号左边就一次,也不带型号,所以也不能传值啊。
那这个p1就毫无用处,等于说函数执行完了,函数外的p1还无改变,*p1也无改变。
难道出现这个p1就是为了考考动不动指针?
l******d
发帖数: 530
14
多谢了,再问下,这种变长参数的函数调用,往stack里push的东西,和普通的定长参
数函数调用有区别吗?对定长参数函数调用,stack里push的就是寄存器和参数,对变
长参数函数调用而言,会有什么特殊处理吗?

is
v***o
发帖数: 51
15
想更多地了解一下各种函数期望值关于其分布概率参数的性质(如单调和CONVEXITY/
CONCAVITY,即E[f(x)|theta]关于theta(x分布的参数) 的各阶导数。
在分析一个VALUE FUNCTION关于STATE VARIABLE的二阶导数时,要看一个函数期望值关
于其分布均值和方差的二阶。稍微想了想,如果分布是正态的,这个函数是连续递增和
CONVEX的,那么这个函数的期望值对于分布均值(和方差)应该也是CONVEX的(因为函
数右端CONVEX地发散至无限Dominate了其他因素)。好像如果是CONCAVE的函数就难说
了。
哪位大牛指导
一下哪些文献可以参考?
m***r
发帖数: 359
16
来自主题: Programming版 - Python日报 2015年3月楼
Python日报 2015-03-19
@好东西传送门 出品, 过刊见
http://py.memect.com
订阅:给 [email protected]
/* */ 发封空信, 标题: 订阅Python日报
更好看的HTML版
http://py.memect.com/archive/2015-03-19/short.html
1) 【用Python和MoviePy将数据动态可视化】 by @Python开发者
关键词:库, 数据科学, 应用, 可视化, 视频处理
《用Python和MoviePy将数据动态可视化》Python有些出色的数据可视化库,但很少能
渲染GIF或视频动画。本文介绍如何运用MoviePy作为其他库的通用动画插件。 [1] (
@丹川黑马 译,欢迎加入翻译组: [2] )
[1] http://python.jobbole.com/81185/
[2] http://www.jobbole.com/groups/6/?utm_source=jobboleblog-article
2) 【Python函数参数默认值的陷阱和原理深究】 by @Pyt... 阅读全帖
v***o
发帖数: 51
17
来自主题: Economics版 - 期望值关于概率参数的性质
在分析一个VALUE FUNCTION关于STATE VARIABLE的二阶导数时,要看一个函数期望值关
于其分布均值和方差的二阶。稍微想了想,如果分布是正态的,这个函数是连续递增和
CONVEX的,那么这个函数的期望值对于分布均值(和方差)应该也是CONVEX的(因为函
数右端CONVEX地发散至无限Dominate了其他因素)。好像如果是CONCAVE的函数就难说
了。
想更多地了解一下各种函数期望值关于其分布概率参数的性质(如单调和CONVEXITY/
CONCAVITY,即E[f(x)|theta]关于theta(x分布的参数) 的各阶导数。哪位大牛指导
一下哪些文献可以参考?
c******k
发帖数: 1140
18
你提供的这个组合函数,我简单画了个图,随便选了个合适的a.b,发现样子极象我要
的curve.已经很好了,但是我进一步尝试解出a, b的表达式 (用我上图中我提供的那些
参数,比如d,Wo, W-.),就完美了,所以
k=pi/d, y=W-
k=0, y=0
我用matlab的solve函数去符号计算这两个方程组,结果matlab报错,算不出。
这样a,b就没有表达式,只能fit. 问题是上图中的curve也是理论曲线,实验是测不出
来的。我们能测的就是那些参数,比如d,Wo, W-.但是根据这三个参数,我们也画不出
这个曲线,因为并不知道定点在什么地方拐弯。这样a, b 也无法fit,这个数学理论模
型也失去意义。
不过不管怎样,你能提供这个函数已经很牛了。。。
a****s
发帖数: 559
19
一般传指针和长度两个参数。
void func(int a[], size_t len)
调用时,数组参数decay成int*指针。
如果要在函数里保留参数的数组特性,
可以传array by reference
void func( int (& a)[10] )
或者传array by pointer
void func( int (* a)[10] )
限制是:数组size需要明确定义。
如果要从函数返回数组,同样
可以return by reference
int (& func())[10]
也可以return by pointer
int (* func())[10]
同样限制,需要明确定义数组size。
p***d
发帖数: 2171
20
群体参数包括:男女性体力智力情绪分布函数,均值,方差等相关参数;
个体参数包括:BMI,(女性)粗糙年龄,每日饭量,每周运动量,(未婚男性)小
电影观赏频率,等等。
打算做一个online版本,用户输入个人物理信息后,系统根据“当前不赔不赚”,
“五年后不赔不赚”等若干选项返回相应年龄参数 & 趋势发展图表,协助鹊桥
id在婚恋过程中对对方年龄拥有一个客观的期望与展望。
女性heyday的分布函数暂定为 N(24, 5^2), 男性的是一个Possion方程,lambda待定。
i****d
发帖数: 255
21
来自主题: Programming版 - 关于传递函数指针
按照我的理解,如果要把一个函数(A)指针当成参数传给另外一个函数(B),在函数B的参
数表里需要把函数A的类型和它所有参数的类型全部带上,这样函数B的参数表就会非常
冗长。比如:
double B(double a, double b, double (*A)(double, int, char*, double*))
不知道我的理解是否正确,各位有没有好的解决方法。
多谢!
p*******a
发帖数: 35
22
参数:Xi,eta,对eta积分,积分上下限eta1,eta2是Xi的函数,被积函数G是Xi,eta
的函数,给定Xi范围,846点(前211点一种被积函数形式、积分上下限,其他点另外一
种被积函数形式&积分上下限),目的是分别求每个Xi点对应的积分
程序如下:其中被积函数G复杂,有好几个过渡的表示
clear all;
clc;
syms eta;
Et = 1; r = 100; % transmitter energy; los distance
C = 3e8; Xi = 1.155:0.001:2;
t = Xi*r/C; eta1 = -0.366; eta2 = 0.366; % light speed, spheroidal
coordinate parameters
Ks = 0.231; Ka = 0.746; Ke = Ks+Ka; g = 0.7; % g is mie scattering parameter
K: coefficient
beta_tx = 45*2*pi/360; beta_rx = 45*2*pi/360; %transmitter re
g*******a
发帖数: 261
23
来自主题: Mathematics版 - 求助:隐函数中系数的拟合
请问只是一个隐函数,该如何求系数?
我在作太阳能电池的双二极管模型拟和,有大概5个未知参数。由于是整合到测量系统
中的,所以希望能用Labview解决。
Labview可以做非线性显函数拟和,所以我现在的思路是,把原隐函数作为双自变量的
显函数,函数值z每个点都为零,然后拟和出最佳参数。不知道这种方法有什么问题?

量)
P*****i
发帖数: 63
24
来自主题: Statistics版 - 与Macro相关的字符函数
看到这一块时感觉好烦呀,困惑有如当年刚见识指针的指针一般。
好吧,我能理解,每个处理普通字符的宏函数都有一个对应处理特殊字符的宏函数,有如%UPCASE之于%QUPCASE。后者的作用就是能无视&和%这两个特殊解析宏的字符。
但当书上这个例子一抛出,楼主便陷入了懵逼中。
%let a=begin;
%let b=%nrstr(&a);
%put UPCASE produces: %upcase(&b);
%put QUPCASE produces: %qupcase(&b);
嵌套的宏解析...
一点点来捋吧。首先,带%的func一定是跟宏相关,要能解析带&后面的字符串参数,将宏替换为相应的值,再以对应的普通函数处理。所以,%UPCASE 就是专门处理宏为参数的UPCASE函数。
在这个例子里,宏a对应的值解析为begin, 宏b的赋值因为无视&的存在,所以解析为&a。
那么,%UPCASE(&b)上来先对&b做解析,得到&a, 然后
下一步呢?
是函数表达式变成了UPCASE(&a), 还是UPCASE(begin)?
但无论是哪个分支,都不大像能得出结果小写的begin啊。
后面Q... 阅读全帖
H****U
发帖数: 5
25
[算法求助] 求向量方程中特定参数值以满足一个均值条件
碰到一个问题, 麻烦感兴趣的同学帮忙求解;
有两个向量A, B, 其中向量A是向量B和某些数值参数(a, b)的函数; 现已知B和a,现求
参数b的值使其满足依函数公式算得的A向量满足均值等于特定数值。
Many thanks!
另,我尝试用逼近的方法,但在update 参数b的guess的时候,因为B 和依 previous
guess算得的A都是向量,无法让matla返回一个数值而非向量的参数b的新guess。求什
么方法可以让matlab只返回一个数值而非向量;
thx!
p********i
发帖数: 719
26
来自主题: Thoughts版 - 历史其实是个函数
历史是什么?历史其实是个函数
从小我就对历史典故感兴趣,成年以后虽然从事的是IT行业,可碰到与历史有关的
文章,还是会认真读一读,不论古今中外,古代近代。
渐渐地,随着年龄的增长,对历史产生了一些疑问。比如为什么会有周期律,中国
古代就产生过讲求平等的墨家思想,为什么会昙花一现?古罗马时期就出现过民主共和
体制,为什么半途而废?宗教为什么兴起? 它们的作用是什么?
最终,我发现历史其实是个函数,一个主要和可用耕地,平均亩产量,人口相关的
函数,时间反到不是主要参数。
这里平均亩产量是主要参数,它决定这一定时期的历史走向,是从平均分配到不平
均分配过度的一条曲线,从而决定社会制度是原始社会,奴隶社会,封建社会,还是资
本/社会主义。
所以,历史其实就是食物史,准确一点是食物分配史,或食物分配方案变革史。
历史其实一直被食物这只被忽略的手操控着,所有兴衰更替,恩怨情愁,喜怒哀乐
其实归根结底都是从食物的分配而来。如果有一个神主宰着生物界的话,那这个神就是
食物。
这个函数中的人数有两个量,一个是由土地乘以亩产量再除以人最低需求量的土地
最大供养人数;一个是实际供养人数。这两个量的关系决定了... 阅读全帖
r****r
发帖数: 755
27
来自主题: Programming版 - 大家平时是怎么命名变量和函数的?
函数的命名和语法应该清楚地表明函数及其调用者的意图
主要考虑两点:
函数对传入参数的读写权
参数的生命周期
例如
CopyFrom(const T&…) // only for copy
GetNewData(… T& out); // function will write to the argument
Walk(T argp[]); // 明确指出需要数组,会作指针运算,比 Walk(T* argp)语义
清楚;
NoWalk(T* const argp); // 明确函数不作任何指针运算, argp++ 将被compiler视为
非法。
X****r
发帖数: 3557
28
来自主题: Programming版 - c++ 得最基本问题
C++里一个重要的概念是序列点(sequence point),当程序运行到一个序列点的时候,
之前的所有副作用都已完成而之后的任何副作用尚未开始。两个相邻的序列点之间的
副作用发生的顺序不一定。同一个变量在两个相邻的序列点之间最多只能被修改一次。
C++标准的1.8里给出了序列点的详细定义并列举了所有的序列点。函数调用之前有
一个序列点,是在函数的所有参数都计算完毕之后而在函数体执行之前。至于函数
参数之间,包括成员函数所对应的对象的计算,它们的先后顺序都是不确定的。
比如f(a,g(b,c));如果a,b,c都是表达式的话,那它们的计算顺序是不确定的。
改换一下形式就是你的例子了。
b***y
发帖数: 2799
29
来自主题: Programming版 - [合集] 几道面试问题
☆─────────────────────────────────────☆
cookiesweet (apple) 于 (Sun Apr 1 14:18:36 2007) 提到:
1. C 和C++的函数调用方法(calling convention)有什么不同? 从下列角度考虑:
stack frame如何变化和把函数参数push进stack的顺序,stack在函数调用前和进入函
数后的变化,以及register ebp等与stack有关的寄存器的情况。
到底C, C++在这方面有何不同?
在VC中,有_cdel, _stdcall等不同的方式,有谁知道他们有何不同?
我只知道函数参数是从右到左的push入stack, 同时还把函数后下一行代码的地址push
入stack.
请各位大拿给写指教。
2. 给定一个数组with size of N,如何判断是否该数组有重复的数? 如果有,找出他们。
最naive的方法是拿任意一个数和别的所有的数比较,O(n^2),
我知道可以先排序,然后就知道了,需要O(nlgn).
有没有更快的Algorithm ?
好像在MITBBS
s******e
发帖数: 2181
30
基本道理清楚,数组作为参数传递给函数的只是数组首元素的地址,函数在需要用到后
面元素时再按照这个地址和数组下标去查找。同时,数组名又正好是数组首元素的地址
,所以在主函数里调用子函数时只需写数组名,那么首元素的地址就传出去了。
我的问题来了,如下例,被调用的函数multiply的形参部分,float *p说明p是一个地
址,这个地址就是传过来的数组首元素的地址。既然p只是地址,那后面的操作
p[0]=2*p[0]
p[1]=2*p[1]
p[2]=2*p[2]
...
不是在把地址乘以2吗,怎么就变成把地址里面的内容乘以2了?用*p[...]来操作是不
是更符合情理?而且p既然是一个地址,怎么就可以写成p[...]了呢,这不变成地址数
组了吗?
虽然实际当中都在这样写,但心中的困惑一直都在。我不是专业马工,求专业马工解惑
并轻拍。
main()
{
float num[]={2.0,3.1,8.6,4.1,7.9};
const int size=sizeof(num)/sizeof(int);
multiply(num,size);
...
}
voi... 阅读全帖
M***e
发帖数: 531
31
现在有个项目,需要估计一个函数里的参数,但是这个函数是customize的函数,不知
道需要用什么函数呢?
多谢
s*****k
发帖数: 604
32
template
inline _Tp* allocate(ptrdiff_t __size)
{
set_new_handler(0);
_Tp* __tmp = (_Tp*)(::operator new((size_t)(__size * sizeof(_Tp))));
if (__tmp == 0)
{
cerr << "out of memory" << endl;
exit(1);
}
return __tmp;
}
你说的没错但是把第二个参数去掉在这里是没问题的。
上面这段代码编译没问题的。
看看和我原来贴出来的有什么不同,
就是把第二个参数去掉了。
我想了想应该是 template instantilization 时候用到了第二个参数。
比如 _Tp = int
原来的那个模板函数用的只要 allocate(10, (int*)NULL)就可以
正确instantilize了
没有第二个参数的话就要这样用: allocate(10)

't
X****r
发帖数: 3557
33
来自主题: Programming版 - 也问个二维数组的函数传递问题
这几个函数各不相同。1的参数是对3x4的二维int数组的引用,2的参数是
指向3x4的二维int数组的指针,而3的参数是对长度为4的一维数组的指针,
因为函数形参出现T[]类型的时候会作为T*来处理。见C++ 2003 8.3.5
3. ... After determining the type of each parameter,
any parameter of type “array of T” or “function
returning T” is adjusted to be “pointer to T” or
“pointer to function returning T,” respectively.
比如
void func1(int (&array)[3][4]) {}
void func2(int (*array)[3][4]) {}
void func3(int array[3][4]) {}
int main() {
int array[3][4];
func1(array);
func2(&array);
func3(a... 阅读全帖
v***o
发帖数: 51
34
他和Segal的那个一般化envelope theorem (Econometrica 02)里定义参数空间t在[0
,1]上。如果目标函数f(x,t)在countable的t属于[0,1]的点上没定义,应该也可以用吧?
我有两种情况:
1.比如参数空间是m属于整个一维实数集,定义一个关于t->m在[0,1]->R上的增函数,两
个端点都没有定义。
2.或者一些constraint和非零效用函数导致某些f(x,t)在某些t点上无定义。
不过,如果2的情况再结合Inada条件导致在某些x上,f(x,t)关于t在包含这些无定义点
上(一般趋于无穷)的区间不能绝对连续。但是f(x,t)在关于t的去除这些无定义点的[
0,1]上区间仍旧绝对连续,是否还可以在这个区间用这个envelope theorem。
n****g
发帖数: 58
35
来自主题: Programming版 - 关于构造函数的一道测试题 (转载)
class Bar: Foo {
public:
Bar():Foo(5){} // 先构造Foo的对象,编译器找不到没有参数的构造函数。在子
类的构造函数后面加上父类带参数的构造函数就行了
};
Bar objBar;
h********n
发帖数: 1671
36
来自主题: Programming版 - static vector 怎么 initialize ?
别人需要看的是声明,而不是定义。到.cpp里看定义才知道它是什么,这样更confuse
别人。
进入main()以后进行实质的初始化,可以保证这时所有变量都已经处在valid状态。你
这个例子用的都是库类型,还问题不大。如果某一天你换成了自己的string类,或者改
用自己的allocator,那这种静态初始化的用法就是一个定时炸弹,不知什么地方就有
可能会引用到一个还没有初始化的变量。
原则上static变量的初始状态都应该尽可能简单。把复杂的参数写进构造函数参数列表
,与用一个函数来初始化没有区别,因为构造函数也是一个函数,只是语法不同。
前面的几个答案里,初始化为empty的那个才是最好的design,有经验的人都会这样写
。其他几个答案不过是为了满足你这个奇怪的用法而凑出来的。
另一方面,如果你不打算进行动态修改的话,为什么要用vector?这时用char
*[]是最合理的。如果你打算在程序中进行动态修改的话,动态初始化自然也很正常。
h********n
发帖数: 1671
37
来自主题: Programming版 - static vector 怎么 initialize ?
别人需要看的是声明,而不是定义。到.cpp里看定义才知道它是什么,这样更confuse
别人。
进入main()以后进行实质的初始化,可以保证这时所有变量都已经处在valid状态。你
这个例子用的都是库类型,还问题不大。如果某一天你换成了自己的string类,或者改
用自己的allocator,那这种静态初始化的用法就是一个定时炸弹,不知什么地方就有
可能会引用到一个还没有初始化的变量。
原则上static变量的初始状态都应该尽可能简单。把复杂的参数写进构造函数参数列表
,与用一个函数来初始化没有区别,因为构造函数也是一个函数,只是语法不同。
前面的几个答案里,初始化为empty的那个才是最好的design,有经验的人都会这样写
。其他几个答案不过是为了满足你这个奇怪的用法而凑出来的。
另一方面,如果你不打算进行动态修改的话,为什么要用vector?这时用char
*[]是最合理的。如果你打算在程序中进行动态修改的话,动态初始化自然也很正常。
h********n
发帖数: 1671
38
来自主题: Programming版 - C++中如何引用模板类中的模板函数
这个例子中,模板类B中引用了模板类A的模板函数f(),但是gcc无法识别这个用法。
template< typename T >
struct A
{
template< typename U >
int f (){ return 0; }
};
template< typename T >
struct B
{
A< T > a; // error
//A a; // ok
int g (){ return a.f< char >(); }
};
int main()
{
B< int > b;
return b.g();
}
U:\tmp\test.cpp: In member function 'int B::g()':
U:\tmp\test.cpp:15:31: error: expected primary-expression before 'char'
U:\tmp\test.cpp:15:31: error: expected ';' before ... 阅读全帖
p**z
发帖数: 65
39
是的,Julia的class叫做Type, 比较像C的struct,可以有constructor,abstract
class可以有inheritance(subtype)。但是,functions不属于class,code写在class
外面,scope缺省是本module。用multiple dispatch来实现polymorphism。
我一开始也非常不习惯,但是这样的设计有一定道理。传统OOP在class里面有method,
不同class有重名的method没关系,根据调用者object的类型调用各自的method,其实
是single-dispatch polymorphism。据我理解(如果有错请懂行的人纠正)在实现
时,其实就是把调用者的object作为第一个参数传进去的(在Python里这一点特别清楚,
因为在class下的function第一个参数都是self)。multiple dispatch就是single
dispatch的generalization,到底调用哪一个版本的函数是所有参数的类型共同决定的,
并不只限于第一个。这个听上去像静态类型语言的fun... 阅读全帖
r****c
发帖数: 1494
40
来自主题: Programming版 - C++函数避免长参数列表
C++的函数如果参数很多,那应该用什么方法避免参数列表变长?我平时写Python的时
候就用dictionary来处理这种情况,把参数分成好几个子dictionary。
貌似只可以定义一个新的struct来存储?
什么是最idiomatic的方法?
d**s
发帖数: 98
41
非常规的解法:
http://blog.csdn.net/anchor89/article/details/6055412
经典面试题:设计包含min函数的栈,O(1)空间实现方法
分类: 数据结构和算法 2010-12-04 22:20 2102人阅读 评论(10) 收藏 举报
题目:定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数
min、push以及pop的时间复杂度都是O(1)。
注:这是06年一道Google的面试题.
先来说个常规解和他的一个优化,常规解的时间复杂度符合要求,但需要线性的额外空间.
常规解(参考 http://zhedahht.blog.163.com/blog/static/25411174200712895228171/):
除了题目要求的栈之外新开一个栈,用来记录最小值,每当在原栈中push数据后,与最小
值栈中的栈顶元素比较,如果新值较小,则在最小值栈中push新值;否则再次push栈顶元
素.
pop的时候,只要将最小值栈也pop一下就行了.
这样,min函数只需要返回最小值栈的栈顶元素即可.
常规解空间上的一个优化:
一般... 阅读全帖
q*d
发帖数: 22178
42
【 以下文字转载自 Physics 讨论区 】
发信人: qed (小白兔终于熬成了大灰狼), 信区: Physics
标 题: 层子模型前后-关于声称以马克思主义哲学指导物理学研究的案例br />
发信站: BBS 未名空间站 (Fri Sep 19 13:53:58 2014, 美东)
层子模型前后-关于声称以马 克 思主义哲学指导物理学研究的案例分析
关 洪
(中山大学物理系,广州 510275)
摘要:本文回顾了从20世纪50年代初期开始,在我国对“物理学中的唯心主义”进
行的多次批判运动。特别是依据“百花齐放”的方针,对层子模型前后声称以马克思主
义指导基本粒子理论研究,并指责同行物理学家为“唯心主义”的一些正式发表的言论
进行了案例分析。
关键词:马克思主义哲学 唯心主义 双百方针 层子模型
[作者简介] 关洪(1935-),男,中山大学物理系教授,主要研究理论物理,物
理学史和科学哲学。
一 我国对“物理学中的唯心主义”批判的启动和推进
中国科学院主办的刊物《科学通报》继在1951年6月号登载了从苏联《哲学问题》
翻译过来的《反对数理逻辑中的唯心主义》的文章之后[1],... 阅读全帖
A*********r
发帖数: 564
43
来自主题: JobHunting版 - C++问题
函数参数不能变的话,有点难,毕竟C++ 的函数必须是已经定义好type的,即
使是有void指针,也是需要cast才能用的。。
除非写几个不同参数的同一个函数,这样可以达到相同的效果。。
q*******i
发帖数: 353
44
【 以下文字转载自 CS 讨论区 】
发信人: qqwuweiyi (娓娓), 信区: CS
标 题: 在子函数内开内存,返回主函数指针然后释放空间是不是很糟糕的设计?
发信站: BBS 未名空间站 (Mon Mar 21 23:19:53 2011, 美东)
比如子函数(void)内用主函数通过参数传过来得指针malloc了空间,然后做
了一些操作之后,返回主函数,在主函数里面再free这个空间。这样做理论上应
该没问题,但是是不是风险很大?是很糟糕的设计?比较好的方法是什么呢?
(用指针的指针传递?)
q*******i
发帖数: 353
45
我遇到的问题是把数组作为参数传递给函数,在函数中数组值被修改同时原来的值也被
修改,有什么办法能让函数中值被修改但是原值不被修改。谢谢

b
q*******i
发帖数: 353
46
我遇到的问题是把数组作为参数传递给函数,在函数中数组值被修改同时原来的值也被
修改,有什么办法能让函数中值被修改但是原值不被修改。谢谢
h*******n
发帖数: 2052
47
比如 我有:
ofstream file;
我在很多函数里都需要输出到文件, file<<
如果每个函数都带上这个文件作为参数太麻烦了, 请问这个要怎么办呢?
q*******i
发帖数: 353
48
来自主题: Programming版 - Java数组怎么样能参数传递 (转载)
我遇到的问题是把数组作为参数传递给函数,在函数中数组值被修改同时原来的值也被
修改,有什么办法能让函数中值被修改但是原值不被修改。谢谢
q*******i
发帖数: 353
49
来自主题: Programming版 - Java数组怎么样能参数传递 (转载)
我是先把数组拷贝(比如把数组a copy 给b),然后把b整个数组作为参数传递到函数
中,在函数内数组b的值被修改了,于此同时函数外a的值也被自动修改了(因为是地址
拷贝),但是我希望保持a不变,怎么操作?
q*******i
发帖数: 353
50
【 以下文字转载自 CS 讨论区 】
发信人: qqwuweiyi (娓娓), 信区: CS
标 题: 在子函数内开内存,返回主函数指针然后释放空间是不是很糟糕的设计?
发信站: BBS 未名空间站 (Mon Mar 21 23:19:53 2011, 美东)
比如子函数(void)内用主函数通过参数传过来得指针malloc了空间,然后做
了一些操作之后,返回主函数,在主函数里面再free这个空间。这样做理论上应
该没问题,但是是不是风险很大?是很糟糕的设计?比较好的方法是什么呢?
(用指针的指针传递?)
1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)