在VBA中模仿std :: map <string,std :: list <string>>

3

我正在尝试在VBA中模仿std::map<string, std::list<string> >(这种情况非常特殊,但实际上是任何nstd::map<>-like容器内部的集合)。

我发现std::map的等价物应该是Dictionary,但最后一部分怎么办?

互联网上找到的大部分内容都表明可以像这样向Dictionary添加数组元素,但没有任何关于如何在完成此操作后添加元素的见解:

Dim my_dictionary as Dictionary
Set my_dictionary = New Dictionary
my_dictionary.Add "KEY#1", Array("A", "B", "C")
'How would I add "D" here ?!
1个回答

3
Sub Tester()

    Dim d As Scripting.Dictionary
    Dim arr, ub

    Set d = New Scripting.Dictionary

    d.Add "key1", Array("A", "B", "C")

    Debug.Print Join(d("key1"))

    arr = d("key1")
    ub = UBound(arr) + 1
    ReDim Preserve arr(0 To ub)
    arr(ub) = "D"
    d("key1") = arr

    Debug.Print Join(d("key1"))

End Sub

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接