Redian新闻
>
征婚(mm)-愿意陪你一起老(附照) (转载)
avatar
S*n
2
需要用C++编一些 data structure 的程序,是直接用STL还是自己编呢?
大家一般都直接用STL么?请高手指点
avatar
q*i
3
【 以下文字转载自 CS 讨论区 】
发信人: qqwuweiyi (娓娓), 信区: CS
标 题: Java数组怎么样能参数传递
发信站: BBS 未名空间站 (Wed Mar 31 22:00:20 2010, 美东)
请教大家一个问题:Java中,我想让一个数组整个的参数传递而不要地址传递应该怎么
弄?
或者回答这个问题:假设数组a[4][4]={...},数组b[4][4]=a[4][4]的话,那么数组b
的值的地址和数组a中的地址是一样的。我就想要知道,如何建立一个数组b,数组a和
数组b的值一样但是地址不一样。
谢谢大家啦,想了很久不知道怎么解决。
avatar
t*g
4
【 以下文字转载自 Piebridge 讨论区 】
发信人: shuye (书野), 信区: Piebridge
标 题: 征婚(mm)-愿意陪你一起老(附照)
发信站: BBS 未名空间站 (Sun May 10 15:25:10 2009)
★性别:

★年龄:
30
★所在地(起码给出state):
Brooklyn, NY
★职业情况(学生还是工作):
会计硕士,工作
★简单的物理参数(身高cm/体重kg):
5'7(170cm), 140 lbs,身材还好,每周健身3-4次。
★当前婚姻状态(从没结过婚/曾婚/丧偶):
未婚
★联系方式(email/IM/站内):
bbs (短信 自我介绍)
email: m********[email protected] (请附照)
★血型、星座(optional):
水瓶座
自我介绍:
古人曰:“三十而立”,又曰“不孝有三,无后为大”。在这而立之年,唯一让我觉得
遗憾的是,茫茫人海,始终为能找到我如愿的女子。春天的傍晚,每当雷雨过后,驻立
在Belt Parkway通往海边大道的天桥上,空气中迷漫着芳草的清香、身边飘落点点滴滴
的花瓣,仰望眼前
avatar
S*I
5
of course STL, why reinventing the wheel?

【在 S***n 的大作中提到】
: 需要用C++编一些 data structure 的程序,是直接用STL还是自己编呢?
: 大家一般都直接用STL么?请高手指点

avatar
X*r
6
你是问怎么复制一个数组吗?
Arrays.copyOf
或System.arraycopy
多维的话恐怕要自己循环一下。

b

【在 q*******i 的大作中提到】
: 【 以下文字转载自 CS 讨论区 】
: 发信人: qqwuweiyi (娓娓), 信区: CS
: 标 题: Java数组怎么样能参数传递
: 发信站: BBS 未名空间站 (Wed Mar 31 22:00:20 2010, 美东)
: 请教大家一个问题:Java中,我想让一个数组整个的参数传递而不要地址传递应该怎么
: 弄?
: 或者回答这个问题:假设数组a[4][4]={...},数组b[4][4]=a[4][4]的话,那么数组b
: 的值的地址和数组a中的地址是一样的。我就想要知道,如何建立一个数组b,数组a和
: 数组b的值一样但是地址不一样。
: 谢谢大家啦,想了很久不知道怎么解决。

avatar
A*t
7
Brave and romantic.
先祝福你!!
avatar
hb
8
当然如果你对编程特别感兴趣,看一看STL的源代码还是很有帮助的。

【在 S***n 的大作中提到】
: 需要用C++编一些 data structure 的程序,是直接用STL还是自己编呢?
: 大家一般都直接用STL么?请高手指点

avatar
q*i
9
我遇到的问题是把数组作为参数传递给函数,在函数中数组值被修改同时原来的值也被
修改,有什么办法能让函数中值被修改但是原值不被修改。谢谢

【在 X****r 的大作中提到】
: 你是问怎么复制一个数组吗?
: Arrays.copyOf
: 或System.arraycopy
: 多维的话恐怕要自己循环一下。
:
: b

avatar
g*9
10
Good Luck!
avatar
C*R
11
do you know where to look for the STL codes?>

【在 hb 的大作中提到】
: 当然如果你对编程特别感兴趣,看一看STL的源代码还是很有帮助的。
avatar
X*r
12
那不就是把数组复制后的结果传进去吗,这样原来那份就不会被修改了。

【在 q*******i 的大作中提到】
: 我遇到的问题是把数组作为参数传递给函数,在函数中数组值被修改同时原来的值也被
: 修改,有什么办法能让函数中值被修改但是原值不被修改。谢谢

avatar
p*z
13
lol
avatar
S*I
14
depends on your OS and default C++ SDK; if using IDE, usually you can just
right click on the source code and choose "go to definition".

【在 C****R 的大作中提到】
: do you know where to look for the STL codes?>
avatar
q*i
15
我是先把数组拷贝(比如把数组a copy 给b),然后把b整个数组作为参数传递到函数
中,在函数内数组b的值被修改了,于此同时函数外a的值也被自动修改了(因为是地址
拷贝),但是我希望保持a不变,怎么操作?

【在 X****r 的大作中提到】
: 那不就是把数组复制后的结果传进去吗,这样原来那份就不会被修改了。
avatar
f*n
16
GOOD LUCK, BOY!!!
avatar
X*r
17
你怎么拷贝的?b = a; ?这样不是拷贝,而是aliasing。如果你是多维数组的话光
调用一个Arrays.copyOf也不够,得自己循环调用它来复制才行。

【在 q*******i 的大作中提到】
: 我是先把数组拷贝(比如把数组a copy 给b),然后把b整个数组作为参数传递到函数
: 中,在函数内数组b的值被修改了,于此同时函数外a的值也被自动修改了(因为是地址
: 拷贝),但是我希望保持a不变,怎么操作?

avatar
s*k
18
Support!
avatar
q*i
19
对,我发现就是循环复制才行,但是数组维数一高,循环复制岂不是效率太低。想问有
没有更高效的办法解决这个问题

【在 X****r 的大作中提到】
: 你怎么拷贝的?b = a; ?这样不是拷贝,而是aliasing。如果你是多维数组的话光
: 调用一个Arrays.copyOf也不够,得自己循环调用它来复制才行。

avatar
m*r
20
不错啊
看起来像墨西哥人
avatar
X*r
21
循环复制的效率和数组的维数关系不大,主要和数组的总元素个数成正比,除非你的每
个维度都只有一两个元素,而有上百个维度,不然不会效率太低。
当然你可以用一维数组来模拟多维数组。Java的多维数组允许子数组的大小不同。
如果你不用这个特性的话直接用一维数组而自己来算下标也是可以的。

【在 q*******i 的大作中提到】
: 对,我发现就是循环复制才行,但是数组维数一高,循环复制岂不是效率太低。想问有
: 没有更高效的办法解决这个问题

avatar
mw
22
avatar
q*i
23
我就是一个m*n的二维数组,但是m和n都很大,这样即使用两个for循环来复制效率也不
低。对吧?除此之外实在想不到什么办法改变新值而原值不变了

【在 X****r 的大作中提到】
: 循环复制的效率和数组的维数关系不大,主要和数组的总元素个数成正比,除非你的每
: 个维度都只有一两个元素,而有上百个维度,不然不会效率太低。
: 当然你可以用一维数组来模拟多维数组。Java的多维数组允许子数组的大小不同。
: 如果你不用这个特性的话直接用一维数组而自己来算下标也是可以的。

avatar
a*7
24
祝福一下!

【在 t*****g 的大作中提到】
: 【 以下文字转载自 Piebridge 讨论区 】
: 发信人: shuye (书野), 信区: Piebridge
: 标 题: 征婚(mm)-愿意陪你一起老(附照)
: 发信站: BBS 未名空间站 (Sun May 10 15:25:10 2009)
: ★性别:
: 男
: ★年龄:
: 30
: ★所在地(起码给出state):
: Brooklyn, NY

avatar
X*r
25
为什么要用两个for循环呢?一个for循环里面套一个Arrays.copyOf就行了啊。

【在 q*******i 的大作中提到】
: 我就是一个m*n的二维数组,但是m和n都很大,这样即使用两个for循环来复制效率也不
: 低。对吧?除此之外实在想不到什么办法改变新值而原值不变了

avatar
d*m
26
祝福!
avatar
q*i
27
明白了,这样效率是比两个for循环高很多吗?

【在 X****r 的大作中提到】
: 为什么要用两个for循环呢?一个for循环里面套一个Arrays.copyOf就行了啊。
avatar
h*1
28
不错不错,该有得都有了~~
avatar
t*t
29
唉, 我不会java都看明白了
copy一维数组, 用copyblahblah method
copy二维数组, 用一重循环加copyblahblah method, 因为二维数组是一维数组的一维
数组

【在 q*******i 的大作中提到】
: 明白了,这样效率是比两个for循环高很多吗?
avatar
d*2
30
做会计的30岁就是美国公民了?我都26了还没申绿卡呢。
竟然是我老乡,顶一下。
avatar
g*g
31
通常一维数组地址连续,二维不是。
跟你说了半天调N次arraycopy就行,不能理解我也没办法了。

【在 q*******i 的大作中提到】
: 明白了,这样效率是比两个for循环高很多吗?
avatar
J*4
32
有勇气,有个性,强顶一下.

【在 t*****g 的大作中提到】
: 【 以下文字转载自 Piebridge 讨论区 】
: 发信人: shuye (书野), 信区: Piebridge
: 标 题: 征婚(mm)-愿意陪你一起老(附照)
: 发信站: BBS 未名空间站 (Sun May 10 15:25:10 2009)
: ★性别:
: 男
: ★年龄:
: 30
: ★所在地(起码给出state):
: Brooklyn, NY

avatar
X*r
33
改善一个常系数而已,不影响时间复杂度,但是不用白不用,代码还简洁些。

【在 q*******i 的大作中提到】
: 明白了,这样效率是比两个for循环高很多吗?
avatar
z*2
34
有诚意,帮老乡顶
avatar
k*d
35
System.arraycopy()
example
int[] original = new int[] {71, -4, 7220, 0, 238};
int[] copy = new int[original.length];
System.arraycopy(original, 0, copy, 0, original.length);
It is a native method, very efficient!!
avatar
s*8
36
deep clone.
However, it's usually not a good idea to modify something passed in as a
param as side effect
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。