0
以下のコードはセグメンテーションフォルトを示しています。しかし、vector<int> s;
をvector<int> s(n)
に置き換えるとすぐにコードはうまく動作します。 なぜこのようなことが起こり、サイズを事前に入力する必要があるベクターの目的が損なわれますか?サイズがあらかじめ設定されたベクトルを初期化する
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
long int n,i,count=0,sum=0;
cin>>n;
string s;
cin>>s;
vector<int> s1;
for(i=0;i<n;i++)
{
if(s[i]=='U')
s1[i]=1;
else
s1[i]=-1;
}
for(i=0;i<n;i++)
{
sum+=s1[i];
if((sum==0)&&(s1[i]!=(-1)))
count++;
}
cout<<count;
return 0;
}