数组名称中的串联

发布于 2024-09-29 14:15:05 字数 340 浏览 2 评论 0原文

我想在 100 个数组中存储 100 个节点的详细信息。 例如,

节点 1 的邻居应存储在 array1

,对于每个数组,名称应更改为 array1array2, array3, ..., array100

我需要使用 for< 连接数组和 ( 1 , 2 , 3 , ... , 100 ) /代码> 循环。

我该怎么做?

I want to store details of 100 nodes in 100 arrays.
For example,

neighbors of node 1 should be stored in array1

In this, for each array the names should be changed like array1, array2, array3, ..., array100

I need the concatenation for array and ( 1 , 2 , 3 , ... , 100 ) using for loop.

How can I do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

澉约 2024-10-06 14:15:05

不太确定你想要什么,但二维数组听起来像是正确的选择

set a(1,1) neighbourof1_1;
set a(1,2) neighbourof1_2;
set a(2,1) neighbourof2_1;
...
...
set a(100,1) neighbourof100_1;

Not exactly sure what you want, but a two dimensional array sounds like the way to go

set a(1,1) neighbourof1_1;
set a(1,2) neighbourof1_2;
set a(2,1) neighbourof2_1;
...
...
set a(100,1) neighbourof100_1;
山有枢 2024-10-06 14:15:05

通常建议使用二维数组(实际上只是复合元素名称),如下所示:

foreach x $listOf1to100 {
    foreach y $listOf1to100 {
        set ary($x,$y) "blah blah"
    }
}

但是,如果您确实想创建这些名称,则可以通过多种方式来实现。一种是这样的:

foreach x $listOf1to100 {
    set ary${x}(...) "blah blah"
}

但这很丑。当你来读取数组时就更丑了!更好的选择是:

foreach x $listOf1to100 {
    upvar 0 array$x a
    set a(...) "blah blah"
}

请注意,如果您确实正在执行 2D 紧凑数字索引,那么您可能最好使用嵌套列表来构建矩阵:

# Create
set matrix [lrepeat 100 [lrepeat 100 "blah blah"]]
# Lookup
set value [lindex $matrix $x $y]
# Update
lset matrix $x $y $value

It's usually recommended to use 2D arrays (really just composite element names) like this:

foreach x $listOf1to100 {
    foreach y $listOf1to100 {
        set ary($x,$y) "blah blah"
    }
}

However, if you really want to be creating those names then you can do it in several ways. One is like this:

foreach x $listOf1to100 {
    set ary${x}(...) "blah blah"
}

But that's ugly. It's even uglier when you come to read the arrays! A better choice is this:

foreach x $listOf1to100 {
    upvar 0 array$x a
    set a(...) "blah blah"
}

Mind you, if you're really doing 2D compact numeric indices then you're perhaps better to use nested lists to build a matrix:

# Create
set matrix [lrepeat 100 [lrepeat 100 "blah blah"]]
# Lookup
set value [lindex $matrix $x $y]
# Update
lset matrix $x $y $value
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文