希望有人可以帮我看看我的代码错在哪里
#include<cstdio>
#include<iostream>
#include<string>
#include<vector>
using namespace std;
typedef struct
{
string address;
int data;
string next;
}Pe;
vector<Pe> ve;
int main()
{
Pe test;
string a;
int n, k; cin >> a >> n >> k;
for (int i = 0; i < n; i++)
{
cin >> test.address >> test.data >> test.next;
ve.push_back(test);
}
for (int i = 0; i < n; i++)
{
if (ve[i].address == a)
{
Pe t = ve[i];
ve[i] = ve[0];
ve[0] = t;
break;
}
}
for (int i = 0; i < ve.size() - 1; i++)
{
for (int j = i + 1; j < ve.size(); j++)
{
if (ve[i].next == ve[j].address)
{
Pe t = ve[j];
ve[j] = ve[i + 1];
ve[i + 1] = t;
}
}
}
int i = 0;
if (n >= k)
{
do {
static int count = 0;
for (int j = count * k, m = (count + 1) * k - 1; j <= (j + m) / 2; j++, m--)
{
Pe t = ve[j];
ve[j] = ve[m];
ve[m] = t;
}
count++;
i++;
} while (i < n / k);
}
for (int j = 0; j < ve.size() - 1; j++)
{
ve[j].next = ve[j + 1].address;
}
ve[ve.size() - 1].next = "-1";
for (int i = 0; i < ve.size(); i++)
cout << ve[i].address << " " << ve[i].data << " " << ve[i].next << endl;
return 0;
}