在我的一个实践问题中,我遇到了一个我不理解的向量声明。有人可以帮我分解一下吗?我是STL的新手
vector<string, vector<string> > friends;
我理解多维矢量,如下面的定义,但是我很难理解如上所述的字符串vector <>的矢量定义。
vector<vector<vector<int> > > V(M, vector<vector<int> >(M,vector<int>(M,0)));
答案 0 :(得分:1)
使用的STL容器应该是map而不是vector。向量可能是一个错字。
答案 1 :(得分:0)
仅出于完整性考虑:std::vector
确实允许您指定第二个模板参数-但该第二个参数是向量的分配器的类型。
当您要控制向量如何为其所容纳的数据分配空间时,指定分配器可能很有用。例如,霍华德·辛南特(Howard Hinnant)撰写了一个 short-allocator,您可能会觉得很有趣。
但是(关键点),第二个模板参数没有指定有关存储数据的任何内容,而是指定了如何分配空间来存储数据。