首页 > 解决方案 > 但是我可以用哈希图(unordered_map)中的大小和值初始化该向量吗?

问题描述

所以,我可以很容易地初始化一个从 int 到向量的哈希图……
但是我可以用一个大小或者默认值来初始化那个向量吗?

例如:vector<int> a(2,0)<--Size 和 values 已初始化 ....
那么有什么适合的吗?unordered_map<int, vector<int>>

标签: c++vectorstlhashmapunordered-map

解决方案


您可以像这样围绕向量创建一个包装器:

struct DefaultSizedVector{
    DefaultSizedVector() : data{2, 0} {}
    vector<int> data;
};

那么地图类型就是unordered_map<int, DefaultSizedVector>这样(通过访问.data成员)它就像一个向量,除了有一个默认大小。

您也可以DefaultSizedVector直接从继承,vector<int>以便它的行为与向量完全一样,但您必须小心,由于此处DefaultSizedVector指出的原因,对的使用受到了相当大的限制。


推荐阅读