标签: arrayofarrays

char*str = {"foo",...}和char str [] [5] = {"foo",...}数组定义有什么区别?

案例1:我写的时候

char*str={"what","is","this"};
Run Code Online (Sandbox Code Playgroud)

然后str[i]="newstring";是有效的,而str[i][j]='j';无效.

案例2:我写的时候

char str[][5]={"what","is","this"};
Run Code Online (Sandbox Code Playgroud)

然后str[i]="newstring";无效,而str[i][j]='J';有效.

为什么会这样?我是一个初学者,在阅读其他答案后已经非常困惑.

c arrays pointers arrayofarrays

30
推荐指数
2
解决办法
2443
查看次数

数组数组的可为空引用类型的问题

当然,C#支持一维和多维数组,并且支持数组的数组。众所周知,如果在数组数组中,内部数组类型与外部数组具有不同的等级(维数),则 C# 语言和 .NET 运行时在类型中给出括号的顺序上存在分歧姓名。尤其:

typeof(string[][,]).Name == "String[,][]"
Run Code Online (Sandbox Code Playgroud)

和:

typeof(string[,][]).Name == "String[][,]"
Run Code Online (Sandbox Code Playgroud)

所以可能会出现一些混乱,但它确实有效。

以下是此类类型的正确用法:

static void Foo1(string[,][] a) {
    //read:
    string[] entry = a[7, 8];
    //write:
    a[7, 8] = new string[] { "alfa", "bravo", "charlie", "delta", };
}

static void Bar1(string[][,] a) {
    //read:
    string[,] entry = a[9];
    //write:
    a[9] = new string[,] { { "echo", "foxtrot", }, { "golf", "hotel", }, { "india", "juliett", }, };
}
Run Code Online (Sandbox Code Playgroud)

读者可以自己验证它是否可以编译并且可以工作(当然必须传入足够大的数组)。

现在,当我们尝试将上述内容与可空引用类型结合起来时,就会出现严重的问题,正如 C# 8(从 2019 年起)以来的 C# 中所存在的那样。至少使用我这里的编译器实现(最新版本的 Visual Studio 2022)。也就是说,如果我做这个轻微的修改:

// …
Run Code Online (Sandbox Code Playgroud)

c# jagged-arrays compiler-bug arrayofarrays nullable-reference-types

10
推荐指数
0
解决办法
148
查看次数

在PHP中创建关联数组的数组

我想在while循环中创建一个关联数组数组.在while循环的每次迭代中,我想在数组中添加一个新元素.我怎么能这样做?之后我想在foreach中传递这个数组并打印数据.我现在有这部分代码,但显然有些问题.

while($row2 = mysql_fetch_array($result))
{ 
    $myarray = array("id"=>$theid, "name"=>name($id), "text"=>$row2[text]);
                            }
Run Code Online (Sandbox Code Playgroud)

php arrays append arrayofarrays

9
推荐指数
2
解决办法
4万
查看次数

使用内连接组合两个数组的数据

我在数组中有两个数据集:

arr1 = [
  ['2011-10-10', 1, 1],
  ['2007-08-09', 5, 3],
  ...
]

arr2 = [
  ['2011-10-10', 3, 4],
  ['2007-09-05', 1, 1],
  ...
]
Run Code Online (Sandbox Code Playgroud)

我想将它们组合成一个这样的数组:

arr3 = [
  ['2011-10-10', 1, 1, 3, 4],
  ...
]
Run Code Online (Sandbox Code Playgroud)

我的意思是,只需将这些行与同一date列组合在一起.

===编辑===

谢谢大家,为了澄清,我不需要那些没有出现在两个数组中的行,只需删除它们.

python arrays arrayofarrays

6
推荐指数
1
解决办法
4495
查看次数

Object to Array(数组的数组)

我正在尝试使用函数将对象文字转换为数组数组。

使用我拥有的两个示例对象,我正在寻找的最终结果是:

[ ["ugh","grr"] , ["foo", "bar"] , ["blah" , 138] ]obj1

[ "shambala","walawala"] , ["foofighter","Barstool"] , ["blahblah",1382342453] ]obj2

var obj1 = {
  ugh: "grr",
  foo: "Bar",
  blah: 138
}; 

var obj2 = {
  shambala: "walawala",
  foofighter: "Barstool",
  blahblah: 1382342453
};

var piece1 = Object.keys(obj1);

var piece2 = Object.values(obj1);

var result = [ ];

for (var i = 0; i < piece1.length; i++) {
 result.push([piece1[i] , piece2[i]])
 }

console.log(result)
Run Code Online (Sandbox Code Playgroud)

根据我上面的内容,我已经能够实现:

[ ["ugh","grr"] , ["foo", "bar"] , …

javascript arrays methods object arrayofarrays

5
推荐指数
1
解决办法
5910
查看次数

Julia:计算数组数组中元素的总数

Julia 中是否有一个函数可以为您提供数组数组(或“锯齿状数组”)中的元素总数?

这就是我的意思:

my_array_of_arrays = [ [1, 5], [6], [10, 10, 11] ] 
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个desired_function(my_array_of_arrays)可以返回的函数 6

如果不是,那么在 Julia 中最快的方法是什么?

提前致谢!

arrays jagged-arrays julia arrayofarrays

4
推荐指数
1
解决办法
221
查看次数

在 Ada 中创建一个空数组数组

我正在尝试在 Python 中编写与以下语句等效的 Ada:L = [[] for i in range(n)]

我正在解决一个动态规划问题,我的计划是如果第 i 个数组的元素少于第 j 个数组的元素,则最终将 L 中第 j 个数组的内容复制到第 i 个数组中(j < i)。

我已经找到了如何通过以相反的顺序定义其范围来创建一个空数组。因此,例如, arr2 将是一个如下创建的空数组:

arr2:整数数组(2 .. 1);

我的问题是,如何定义更大的数组 L 以包含 n 个这样的 arr2 数组?

请告诉我。

更新:我能够使用下面的答案使其正常工作。这是我的代码。

package Integer_Vectors is new Ada.Containers.Vectors
    (Index_Type   => Natural,
    Element_Type => Integer);

    N: Integer;

    Array_Of_Vectors : array(1 .. N) of Integer_Vectors.Vector := (others => Integer_Vectors.Empty_Vector);

    Input_Sequence: Integer_Vectors.Vector;

    Max: Integer_Vectors.Vector;

    Input_List : String := Get_Line;

    IntCast : Integer;

    Last : Positive := 1;
    
    begin …
Run Code Online (Sandbox Code Playgroud)

arrays ada arrayofarrays

4
推荐指数
1
解决办法
318
查看次数

Julia:一种从数组数组中获取矩阵的快速而优雅的方法

有一个包含超过 10,000 对 Float64 值的数组。像这样的东西:

v = [[rand(),rand()], ..., [rand(),rand()]]
Run Code Online (Sandbox Code Playgroud)

我想从中得到一个包含两列的矩阵。可以用一个循环绕过所有对,它看起来很麻烦,但在几分之一秒内给出结果:

x = Vector{Float64}()
y = Vector{Float64}()
for i = 1:length(v)
    push!(x, v[i][1])
    push!(y, v[i][2])
end
w = hcat(x,y)
Run Code Online (Sandbox Code Playgroud)

permutedims(reshape(hcat(v...), (length(v[1]), length(v))))我在此任务中找到的解决方案看起来更优雅但完全挂起 Julia,需要重新启动会话。也许六年前它是最佳的,但现在它不适用于大型阵列。有没有既紧凑又快速的解决方案?

arrays reshape julia arrayofarrays

4
推荐指数
1
解决办法
135
查看次数

Julia 使用 fill() 和 .+= 的“奇怪”行为

我在我的代码中观察到了“.+=”的意外行为(可能只是我,我对 Julia 还是比较陌生)。考虑以下示例:

julia> b = fill(zeros(2,2),1,3)
       1×3 Array{Array{Float64,2},2}:
       [0.0 0.0; 0.0 0.0]  [0.0 0.0; 0.0 0.0]  [0.0 0.0; 0.0 0.0]

julia> b[1] += ones(2,2)
       2×2 Array{Float64,2}:
       1.0  1.0
       1.0  1.0

julia> b
       1×3 Array{Array{Float64,2},2}:
       [1.0 1.0; 1.0 1.0]  [0.0 0.0; 0.0 0.0]  [0.0 0.0; 0.0 0.0]

julia> b[2] .+= ones(2,2)
       2×2 Array{Float64,2}:
       1.0  1.0
       1.0  1.0

julia> b
       1×3 Array{Array{Float64,2},2}:
       [1.0 1.0; 1.0 1.0]  [1.0 1.0; 1.0 1.0]  [1.0 1.0; 1.0 1.0]
Run Code Online (Sandbox Code Playgroud)

可以看出,最后一条命令不仅改变了 b[2] 的值,也改变了 b[3] 的值,而 b[1] 保持不变(*),我们可以确认运行: …

sum broadcast in-place julia arrayofarrays

3
推荐指数
1
解决办法
96
查看次数

按值减少数组数组

我有一个类似于下面结构的数组。我正在尝试根据公司名称(例如公司 A)尽可能有效地减少数组。因此,基本上,在公司名称相同的情况下,合并内部数组,以便每个位置的数字添加到相应位置的匹配数组的数字中。此外,如果其中一个数组缺少电子邮件或电话,请获取具有值的电子邮件或电话位置。底部的 resultArray 显示了我想要实现的结果。

*注意 - 我不知道公司后面的数字的长度。长度是动态设置的,但每个内部数组的长度始终相同。因此,有时所有innerArray 的长度都是6 个值,有时它们的长度可能是20 个值。

var array = [
    [Company A, A-Email, A-Phone, 2, 5, 10],
    [Company A, A-Email, , 1, 10, 7],
    [Company A, , A-Phone, 3, 2, 4],
    [Company B, B-Email, , 1, 10, 7],
    [Company B, B-Email, B-Phone, 5, 10, 8],
    [Company C, C-Email, C-Phone, 3, 2, 1]
  ]
var resultArray = [
    [Company A, A-Email, A-Phone, 6, 17, 21],
    [Company B, B-Email, B-Phone, 6, 20, 15],
    [Company C, C-Email, C-Phone, 3, …
Run Code Online (Sandbox Code Playgroud)

javascript arrayofarrays

2
推荐指数
1
解决办法
2972
查看次数

将对象数组数组缩减为对象数组

var data=[
  {name:'Sam',ssn:123, age:25, hobbies:[{name:'cricket'},{name:'football'}]},
  {name:'John',ssn:234, age:25, hobbies:[{name:'cricket'},{name:'football'}]},
  {name:'Mathew',ssn:345, age:25, hobbies:[{name:'cricket'},{name:'football'}]}
];
Run Code Online (Sandbox Code Playgroud)

想要将其生成为以下格式

[      
      {name:'Sam',ssn:123, age:25,hobbies:[{name:'cricket'}]},
      {name:'Sam',ssn:123, age:25,hobbies:[{name:'football'}]},
      {name:'John',ssn:234, age:25,hobbies:[{name:'cricket'}]},
      {name:'John',ssn:234, age:25,hobbies:[{name:'football'}]},
      {name:'Mathew',ssn:345, age:25,hobbies:[{name:'cricket'}]},
      {name:'Mathew',ssn:345, age:25,hobbies:[{name:'football'}]}
];
Run Code Online (Sandbox Code Playgroud)

我尝试了以下方法。不明白。我已经添加了 reduce 方法的一些基本功能,但没有任何想法将其展平。

var flatten = data.reduce((curr, next) => {
  var temp = [];
  return (curr.hobbies = { name: "cricket" });
  temp.push(curr);
  return curr;
});
Run Code Online (Sandbox Code Playgroud)

javascript reduce arrayofarrays

2
推荐指数
1
解决办法
55
查看次数

将八个对象铲入每个数组索引ruby中

有没有办法重构这段代码?第一个片段是我现在拥有的,第二个是我试图制作的逻辑.

count = 0
until count >= board.length
  if board[count] == nil
    board[count] = [nil, nil, nil, nil, nil, nil, nil, nil,]
  end
  count += 1
end
board
Run Code Online (Sandbox Code Playgroud)

在我的第四行,我想做类似的事情

board[count] = (8.times { board[count] << nil })
Run Code Online (Sandbox Code Playgroud)

我知道这只是一段时间.我只是好奇或者想要清除我的逻辑...谢谢!!

ruby arrays refactoring arrayofarrays

1
推荐指数
1
解决办法
152
查看次数