由买买提看人间百态

topics

全部话题 - 话题: 数组
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)
x****u
发帖数: 44466
1
来自主题: Programming版 - 数组如何实现???
静态数组的话,和静态变量实现一个方法。
T*****9
发帖数: 2484
2
来自主题: Programming版 - 关于java的二维数组的问题
假如我有一个二维数组int[][] a;
我想把第i维置空,能用a[i] = new int[]{}么?
t**o
发帖数: 144
3
来自主题: Programming版 - 请教C数组定义问题
在一个函数里一个数组不能被定义两次,例如定义了一个
int a[3]
如果下面再定义一个
int a[5]
就会出错。但是为什么下面这个程序就不会出错:
int main()
{
int i, j;
for (i=2; i<5; ++i)
{
int a[i];
for (j=0; j {
a[j] = j+i;
printf("a(j) = %d\n", a[j]);
}
}
return 0;
}
貌似在每个循环里a[i]都被重新定义了。是不是这里a[i]的scope仅限于每次循环,而
不是整个函数?分配给a[i]的内存每次循环后都会释放吗,还是等整个循环结束后才释
放?
谢谢高手指教。
H***a
发帖数: 735
4
来自主题: Programming版 - Matlab处理数组一问
现有2个vecter: x和y,分别存放数组A里某个元素的行和列坐标,比如:
x=[1:3] --> x = 1 2 3
y=[1:3] --> y = 1 2 3
A=[1:3;4:6;7:9] -->
A = 1 2 3
4 5 6
7 8 9
现在希望能用A(x,y)实现类似"diag(A) = 1 5 9"的功能,但显然Matlab并不会把x,y一
一对应填入坐标,而是自动充满,即A(1:3,1:3),所以输出整个A。 请问如何才能用x,y
来实现呢?谢谢。
x****t
发帖数: 389
5
来自主题: Programming版 - 数组弱问
#include
using namespace std;
int main(){
double a[10];
for(int i=0;i<10;i++) a[i]=i+1;
int t=111;
cout< return 0;
}
运行出来等于a[t]=0,C里面就是数组溢出也不报错的吗?
l*****d
发帖数: 359
6
来自主题: Programming版 - 数组弱问
只能说编译器比较笨。不过c里面数组不越界的确是应该程序员自己控制的。
f******y
发帖数: 2971
7
来自主题: Programming版 - 数组弱问
数组越界是不报的,不过运行的时候很可能有segmentation fault。
l*****d
发帖数: 359
8
来自主题: Programming版 - 关于数组
如果a是数组, a就是&a吧,一回事儿。
s*****k
发帖数: 604
9
来自主题: Programming版 - 数组问题
有两个变量
char a[] = "Hello";
char *b = "Hello";
稍微了解指针和数组差别的人可以都知道这个区别
sizeof(a) = 6;
sizeof(b) = 4;
如果有这样一个函数,
void siz(char a[100])
{
printf("%d\n", sizeof(a));
}
请问调用这个函数为什么输出是 4?
b*******a
发帖数: 68
10
来自主题: Programming版 - 数组问题
函数参数里的数组如指针等价,即以下相同 (那个100没什么用用,直接忽略,一般别
这么写,没用,因为compiler/runtime不检查,而且confusing):
void foo(char *p)
void foo(char p[])
void foo(char p[100])
b***y
发帖数: 2799
11
☆─────────────────────────────────────☆
wmbyhh (wmbyhh) 于 (Tue May 13 15:30:24 2008) 提到:
C#里面的动态数组是怎样定义的?
就是说需要一个heap,长度是未知,添加记录后不断增大、同时删除记录后不断减小。
不知如何实现?
难道要用指针吗?对指针不熟。
☆─────────────────────────────────────☆
kfk (忘情四百年,快意山水间) 于 (Tue May 13 18:16:05 2008) 提到:
use List, Queue or Stack

☆─────────────────────────────────────☆
greatpanda (囧興) 于 (Tue May 13 18:36:34 2008) 提到:
卡夫卡也玩csharp?
☆─────────────────────────────────────☆
wmbyhh (wmbyhh) 于 (Tue May 13 20:07:31 2008) 提到:
就算
b***y
发帖数: 2799
12
来自主题: Programming版 - [合集] C++delete数组遇到的问题
☆─────────────────────────────────────☆
xubest (既飞之蜻蜓) 于 (Thu May 15 02:48:01 2008) 提到:
for some reason,没有用vector >a,而是 vector *a,然后用new定
一维数组,然后在push_back出另一维,程序如下:
#include
#include
using namespace std;
int main()
{
vector *a;
a = new vector [2];
a[0].push_back(7);
a[1].push_back(8);
for(int i=0;i<2;i++)
{
for(int j=0;j {
cout< }
b***y
发帖数: 2799
13
☆─────────────────────────────────────☆
matII (代号9527) 于 (Tue Sep 30 21:46:48 2008) 提到:
看似是个弱智问题。。。
我是这么做的:
double x[100]; //待传递的数组
double *y = x;
这个可以工作,但是使用y会比直接使用x慢好几倍。。。
下面是完整的速度测试:
#include
#include
using namespace std;
const int n = 100;
const int N_Trial = 1000000;
int main(void)
{
double x[n],y[n];
for(int i=0;i {
x[i] = rand();
y[i] = x[i];
}
double *z=y;
double start,t;
start = clock();
for(int i=0;i
b*********n
发帖数: 1258
14
程序是这样的
有一个动态长度的vector
然后对这个vector做DP
想问问那个DP结果的2维数组用什么数据结构比较好?
谢谢
t****t
发帖数: 6806
15
来自主题: Programming版 - 关于数组size的问题
在func里肯定是没法check的, 因为你需要接收任意大小的数组, 所以你的类型一定是
int*, 即int [N]退化成int*了.

si
无法
z****e
发帖数: 2024
16
函数的argument如果是一维数组,不需要声明维数,如果是高维,那么最后一个维数是
需要声明的
void test(int b[20]) =void test(int b[ ])
l********d
发帖数: 55
17
假设N个数组分布在不同机器上。一共N台机器。如何有效的找出这N*N个数的中数。
多谢
X****r
发帖数: 3557
18
来自主题: Programming版 - Java数组怎么样能参数传递 (转载)
你是问怎么复制一个数组吗?
Arrays.copyOf
或System.arraycopy
多维的话恐怕要自己循环一下。

b
X****r
发帖数: 3557
19
来自主题: Programming版 - Java数组怎么样能参数传递 (转载)
那不就是把数组复制后的结果传进去吗,这样原来那份就不会被修改了。
X****r
发帖数: 3557
20
来自主题: Programming版 - Java数组怎么样能参数传递 (转载)
你怎么拷贝的?b = a; ?这样不是拷贝,而是aliasing。如果你是多维数组的话光
调用一个Arrays.copyOf也不够,得自己循环调用它来复制才行。
q*******i
发帖数: 353
21
来自主题: Programming版 - Java数组怎么样能参数传递 (转载)
对,我发现就是循环复制才行,但是数组维数一高,循环复制岂不是效率太低。想问有
没有更高效的办法解决这个问题
q*******i
发帖数: 353
22
来自主题: Programming版 - Java数组怎么样能参数传递 (转载)
我就是一个m*n的二维数组,但是m和n都很大,这样即使用两个for循环来复制效率也不
低。对吧?除此之外实在想不到什么办法改变新值而原值不变了
g*****g
发帖数: 34805
23
来自主题: Programming版 - Java数组怎么样能参数传递 (转载)
通常一维数组地址连续,二维不是。
跟你说了半天调N次arraycopy就行,不能理解我也没办法了。
S******n
发帖数: 489
24
来自主题: Programming版 - 问个关于数组的问题
哦,明白了,如果是静态数组的话就放在内存里了?
c**b
发帖数: 2999
25
变量名字尽量用具体的,比如userName. c里面难度大的是指针,数组,函数.
y**********0
发帖数: 425
26
来自主题: Programming版 - 数组指针的问题
char str[20];
......
str++错误,但是++str 正确。
这个和整数的不同吗,整数就可以i++和++i,但是数组名就不行?
z****e
发帖数: 2024
27
来自主题: Programming版 - 数组指针的问题
都应该错误。
数组的名字又不是指针。
y**********0
发帖数: 425
28
来自主题: Programming版 - 数组指针的问题
数组名字就相当于一个指针,
比如char str[20];
...
str[1]和*(str+1)是一样的,但是 str++是错误的,而++str是正确的呢。如果不知道
这个,很难发现错误的。我仔细看了答案才知道。
M**u
发帖数: 10158
29
来自主题: Programming版 - 问个数组地址的问题
你cout (unsigned long)&a[3] - (unsigned long)&a[0]
你这个就是简单的pointer substract,取决于数组的类型
S****z
发帖数: 666
30
来自主题: Programming版 - 问个数组地址的问题
那我看地址的时候看到的38,2C是不是物理地址?
你意思是我不应该看这些物理地址,应该看它的逻辑地址?
那怎么把GPS LOCATION转成门牌号啊?sigh,真是麻烦,所见还非所得了
计算机内存模型那块我大概知道它用一个叫什么虚拟内存的概念,
然后来来去去几个页面调度算法,再复杂的我就不太清楚了
不过貌似这跟我取数组元素地址减一下没啥关系吧

The
lived
in
.
P********e
发帖数: 2610
31
看你最终有另外output数组还是没有?
有就 正序,否则反序。区别不大。然后,每2个数组合。
多属性没什么不同,就是自建struct, 多个比较函数。
不想写,就用stl的pair.反正都是唯一。

的。
p***o
发帖数: 1252
32
用heap,每个数组顺序读一遍,结果写一遍,从I/O上讲效率已经不错了。
再想提高的话花点时间读文献也是值得的。
k***t
发帖数: 57
33
来自主题: Programming版 - c里全局数组的再次赋值问题
我现在是对第二次赋值做个计数 然后正向你说的 保证只用那范围内
但请教一下数组清零有什么好办法么?谢谢
c*******h
发帖数: 1096
34
数组是分布式存储的
l***y
发帖数: 4671
35
为了避免 copy 大数组 (实际运算是 1000-by-1000,并且大量重复访问),想用个指针
来指向它。
int main () {
static int A[10][10][10];
static int B[10][10][10];
static int C[10][10][10];
A[1][2][3] = 123;
B[1][2][3] = 1230;
C[1][2][3] = 12300;
int (*p)[10][10][10]; // line a
char cFlag;
cin >> cFlag;
while (cFlag == 'A' || cFlag == 'B' ||cFlag == 'C') {
switch (cFlag) {
case 'A':
p = &A;
break;
case 'B':
p = &B;
break;
case 'C':
p = &C;
break;
}
printf(... 阅读全帖
l********a
发帖数: 1154
36
常数数组如果是card类的成员
wujiang.cpp引用一下card.h就可以使用其成员数据了
b***i
发帖数: 3043
37
在card.cpp里面附初值,在card.h定义这个常数数组。既然常数,可以static,基本就
是全局变量。wujiang.h里面include "card.h"

cpp
b*******s
发帖数: 5216
38
来自主题: Programming版 - 定义 单链表 数组,会不会很奇怪
应该是一个包含了p个单链表头指针的数组吧,你的insert是怎么做的?
b*******s
发帖数: 5216
39
来自主题: Programming版 - 定义 单链表 数组,会不会很奇怪
应该是一个包含了p个单链表头指针的数组吧,你的insert是怎么做的?
b***i
发帖数: 3043
40
来自主题: Programming版 - 如何让一个指针指向一个多维数组
对,这样也许就是楼主的第三方程序需要的,是动态分配的指针的指针的内存。
而且,这样也不算ugly,这就是标准动态分配二维均可变数组的方法。

f*****y
发帖数: 1997
41
请大家看看我的new和delete用的对么? 传给函数的时候,是传指针还是数组名呢?
void main()
{
double **** g;
g = new double *** [m_ydimension];
for(i=0; i< m_ydimension; i++)
{
g[i] = new double ** [m_xdimension];
for (j=0; j< m_xdimension; j++)
{
g[i][j]= new double * [m_zdimension];
for (k=0; k {
g[i][j][k] = new double [19];
for (l=0; l<19; l++)
{
g[i][j][k][l]=0.0;
... 阅读全帖
t*******s
发帖数: 7
42
超过3维的数组已经反人类了。我会用一个一维的来存贮,
用函数来代替取值。
问题是找值时候是稍微慢点。但是我估计不影响小data size .
我写的代码见下。
最大的好处是可以定义为任意dimensions.
caller 的 interface 不用改变,不用打多余的星星(*),哈哈
N******K
发帖数: 10202
43
来自主题: Programming版 - java在数组上的问题:作茧自缚
我今天来黑一下java
限制大小为 int 255
不支持连续存储的多维数组
完全就把它和大型图像计算隔离开了
N******K
发帖数: 10202
44
来自主题: Programming版 - java在数组上的问题:作茧自缚
哈哈 手误而已 int 32位
没有连续多维数组 造成的矩阵运算麻烦 以及调用lapack等线性代数库的速度问题 不
是你能想象的
g*****g
发帖数: 34805
45
来自主题: Programming版 - java在数组上的问题:作茧自缚
你这个手误得太离谱了,显示出一点common sense都没有。没有连续多维数组,
没有所谓实现上的矩阵运算麻烦,你这个是纯闲扯。你要说性能不如C,fortran,地球
人都知道。
g*****g
发帖数: 34805
46
来自主题: Programming版 - java在数组上的问题:作茧自缚
你能不能具体一点那篇paper哪页提到这个无联系多维数组妨碍了实现。你这个页面无
数篇
paper没法翻。
g*****g
发帖数: 34805
47
来自主题: Programming版 - java在数组上的问题:作茧自缚
这个提的仍然是性能问题,不是实现问题,不能对多维数组做直接操作影响性能,不影
响实现。
N******K
发帖数: 10202
48
来自主题: Programming版 - java在数组上的问题:作茧自缚
没有连续多维数组 造成的矩阵运算麻烦 以及调用lapack等线性代数库的速度问题 不
是你能想象的
这句话 你能推理出 java不能实现矩阵运算 说明你已经进化到那美克星人层次
g*****g
发帖数: 34805
49
来自主题: Programming版 - java在数组上的问题:作茧自缚
既然性能不能用麻烦修饰,地球人理解就是你说java没有多维数组造成矩阵运算的实现
麻烦。
所以我问为啥实现麻烦,你小学语文不及格不是我的错。
g*****g
发帖数: 34805
50
来自主题: Programming版 - java在数组上的问题:作茧自缚
自己乱喷,就别怪我打你脸,我问为啥实现麻烦,你不但没否认,还paper为证哪。现
在又否认没说了?
就你这德性也好意思出来丢人?
发信人: NatureOK (ok), 信区: Programming
标 题: Re: java在数组上的问题:作茧自缚
发信站: BBS 未名空间站 (Sat Mar 23 17:04:09 2013, 美东)
有paper为证 不是我胡扯
http://math.nist.gov/javanumerics/
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)