gpt4 book ai didi

c++ - 当我尝试定义这个 vector< pair< int , pair>> vp(n)

转载 作者:行者123 更新时间:2023-11-28 01:29:11 26 4
gpt4 key购买 nike

输出中有 Give me 0 0

#include <bits/stdc++.h>
#define fsv(i , n) for(int i = 0 ; i < n ; ++i)
using namespace std;

int main()
{
int n ;
cin >> n ;
vector< pair< int , pair<int, int> > > vp(n);
vector <int> v(n) ;

fsv(i , v.size())cin >> v[i];

for(int i = 0 ; i < n ; ++i){
for(int j = i+1 ; j < n-1 ; ++j){
vp.push_back(make_pair(abs(v[i]-v[j]) , make_pair(i,j)));
}
}
sort(vp.begin() , vp.end());

cout << vp[0].second.first << " " << vp[0].second.second;

}

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

最佳答案

问题是

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

n 元素和 push_back() 初始化一个 vector add other n 元素`。

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

你应该创建一个 vector

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

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

vp.reserve(n);

在推回 n 个元素之前。

题外话建议:请避免包含不标准的标题

#include <bits/stdc++.h>

关于c++ - 当我尝试定义这个 vector< pair< int , pair<int, int>>> vp(n),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52358322/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com