当我尝试定义此向量<pair <int时,pair <int,int =“”>>> vp(n)

时间:2018-09-16 20:57:59

标签: c++ stl c++14 stdvector push-back

有输出给我socket

0 0

此与代码相关的代码导致问题,我知道还有其他方法...但是我问这是访问这样的元素的正确方法吗? http://codeforces.com/contest/34/problem/A

1 个答案:

答案 0 :(得分:2)

问题是

vector< pair< int , pair<int, int> > > vp(n);
// ......................................^^^  n initial elements

使用n元素初始化向量,并使用push_back() 添加 其他 n元素`。

v进行排序后,v[0]元素是(我想)首字母n之一。

您应该创建一个向量

vector< pair< int , pair<int, int> > > vp;
// ....................................^^  no more initial elements; empy!

并且,为了加快速度并避免不必要的重定位,请将n保留为大小(但这不是必需的)

vp.reserve(n);

在推回n元素之前。

非主题建议:请避免使用非标准标题作为

#include <bits/stdc++.h>