我需要一个容器来根据两个属性(源(int)和目标(int))存储一个值(int),即当源向目标发送某些东西时,我需要将它作为一个元素存储在容器中。源由唯一的 int ID(从 0-M 的整数)标识,其中 M 在几十到几百之间,目标 (0-N) 也是如此。容器将通过另一个函数的迭代来更新。
我一直在使用vector(vector(int))
这意味着按源(目的地(值))的顺序。后续过程需要检查此容器,以查看特定源和特定目的地是否存在元素 - 它需要区分空的“空间”和填充的“空间”。容器有可能非常稀疏。
要存储的值可以是 0,所以我没有成功尝试找出空间是否为空,因为我似乎无法执行 container[M][N].empty() 之类的操作。
我没有使用地图的经验,但我看到另一篇文章建议地图可能有用,并且 anstd::map<int, int>
似乎类似于vector<vector<int>>
.
总结一下:
- 有没有办法检查向量“空间”的特定向量是否为空(因为我无法将其与 0 进行比较)
- 是否有
std::map<int, int>
更好的用途,我该如何使用?