私の最初の試みだった:ベクターから要素を削除し
境界エラーで終わるI = Vector{String}(["first", "second", "third", "fourth"])
for i in I
if i == "fourth"
splice!(I, 4)
end
print("$i\n")
end
:私はちょっと「手書き」道からそれを考え出し
その後BoundsError(String["first", "second", "third"], (5,))
:
I = Vector{String}(["first", "second", "third", "fourth"])
state = start(I)
while ! done(I, state)
(i, state) = next(I, state)
if i == "fourth"
splice!(I, state - 1)
print("Delete element i=$(state - 1)\n")
state = state - 1
continue
end
print("Got: i=$i state=$state\n")
end
出力:
Got: i=first state=2
Got: i=second state=3
Got: i=third state=4
Delete element i=4
しかし、確かに、それは読むのは簡単でも書くのも簡単ではありません。それを反復しながら、ベクトルから要素を削除する "ジュリアン"の方法はありますか?あるいは、ある種の関数呼び出しによって明示的にサポートされている推奨データ構造はありますか?
、削除されるべきであるすべてのインデックス、例えばを生成イテレータで一度だけ
deleteat!
を呼び出す方が良いです!(I) 'あなたが探しているものに近づく? [ええ、これはほうれん草と関係があるかどうか疑問に思う] – rickhg12hs@ rickhg12hs笑、残念ながら私が必要なものではありません。どのような位置であっても、ベクトルから要素を削除できるようにする必要があります。 – lama12345