c++ - 如何使用模板将结构存储在指针数组中

标签 c++ arrays templates pointers struct

好吧,我的指针技术有点差。我正在创建自己的简单 map 容器,可以在其中存储不同的数据类型。我正在尝试创建 insertPair() 方法,其中一个结构存储在一个指针数组中,但我正在努力解决语法问题。我创建了一个结构,我试图将 a 的值分配给 temp.key 并将 b 的值分配给 temp.value。我该怎么做并将结构存储在指针数组中?我在 main() 中创建了一个 test 对象,并传入了一个 int 和一个 string。非常感谢任何指导。谢谢

template <typename K, typename V>
class CMyMap
{
    int arraysize;
    CMyMap* myArr[5];
public:

    struct pair
    {
        K key;
        V value;
    };

    CMyMap()
    {
        arraysize = 0;
    }

    void insertPair(K a, V b)
    {
        pair* temp = new pair;
        temp->key = a;
        temp->value = b;

        myArr[0] = temp; // trying to store the values of temp.key and temp.value to myArr[0]
    }

    void display()
    {
        // dont how to display the key and value correctly.
        cout << myArr[0] << endl;
    }
};

int main()
{
    CMyMap<int, string> test;

    test.insertPair(23, "bob");

    test.display();

    cin.get();
}

最佳答案

temp.key = a; 应该是 temp->key = a;

同样,temp.value 应该是temp->value

要获取或设置 *myArr 中索引 i 处的值,您将使用 (*myArr)[i​​],因为 myArr 是一个指向数组的指针。

关于c++ - 如何使用模板将结构存储在指针数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26685353/

相关文章:

c++ - 如何使用 lambda 作为 std::unique_ptr 的删除器?

java - 二维数组、字符串、 double 和加法

r - 用于删除 NA 值的模板化 Rcpp 函数

C++ 类对非类型模板参数的部分特化

C++将静态库链接到动态库

c++ - 重载一个方法只是为了在 C++ 中报告一个更好的错误。有没有更好的办法?

php - excel array column double/triple/etc..辅音生成

c++ - 如何防止模板化别名的隐式保值转换?

c++ - FFMPEG 并将 swf 转换为图像?

Python:struct 和 array 与 ctypes 中的相似功能