【发布时间】:2020-05-29 16:44:19
【问题描述】:
当我的初始化是:vector < pair < int , int > > v ( 100 );
我无法执行:vecini[x].push_back( make_pair( y , z ) ) ;
但是当我启动它时它会起作用:vector < pair < int , int > > v [100];
【问题讨论】:
-
你想要一个包含 100 个元素的向量还是 100 个空向量?
-
第一个是100个
(0,0)对的向量。第二个是一个包含 100 个空向量的数组。 -
我想要一个包含 100 个空向量的数组,但我认为这两个初始化都做了同样的事情。谢谢!
-
你认为你想要一个包含 100 个空向量的数组,但这是个坏主意。而是从 100 个空向量对的 vector 开始。
std::vector<std::vector<std::pair<int, int>>> v(100);。最好的办法是定义有意义的命名类型,例如struct point { int x, int y };而不是std::pair<int, int>