#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main()
{
int n;
vector < string > arr(100); // initialise the size of vector always else
appending wont work,why?
string y;
int x;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>x>>y;
fflush(stdin);
if(i<n/2)
{
arr[x].append("- "); //appending the first 10 positions with "- "
}
else
{
arr[x].append(y);
arr[x].append(" "); //appending the last 10 positions with given
strings
}
}
for(int i=0;i<100;i++)
{
cout<<arr[i];
}
return 0;
}
附加不通过使用+或附加它给出警告请解释为什么先生? 它给出了一个指向函数操作中使用函数的指针的警告......
答案 0 :(得分:3)
初始化向量的大小总是附加不工作,为什么?
因为这段代码:
arr[x].append("- ");
表示&#34;在向量append()
&#34;的第x个元素上调用方法arr
。当您创建arr
空的第x个元素(无论x
具有什么值)时,该元素不存在且您的代码具有UB。