vector存getline读取的数据,统计个数的时候出错

#include<bits/stdc++.h>
using namespace std;


int main()
{
    string s="a b cb d";
    while(cin>>s)
    {
        vector<string> data;//目标存放器 存放空格分割的目标数据
        string iter;
       stringstream sstream(s);
            while(getline(sstream, iter,' '))
                data.push_back(iter);
        
        cout<<data.size()<<endl;
    }
}

预期输出是 4

实际输出:
1
1
1
1

vector<string> data放到循环外面