vector<queue<char>> 如何用队列储存一句话里的每一个单词


#include<iostream>
using namespace std;
#include<string>
#include<queue>
#include<vector>

int main()
{
    string str = "He loves her";
    vector<queue<char>> vs;
    int sz = str.size();
    int i = 0, count = 0;
    while (i < sz) {
        while (str[i] != ' ') {
            vs[count].push(str[i++]);
        }
        count++;
        i++;
    }
}

提示segmentation fault


 string str = "He loves her";
    int sz = str.size();
    vector<queue<char>> vs(sz);
    int i = 0, count = 0;
    while (i < sz) {
        while (str[i] != ' ') {
            vs[count++].push(str[i++]);
        }
        //count++;
    }
#include <iostream>
using namespace std;

#include<string>
#include<queue>
#include<vector>
int main()
{
    string str = "He loves her";
    vector<queue<char>> vs(100);   //要指定最大容量
    int sz = str.size();
    int i = 0, count = 0;
    while (i < sz) {
        while (str[i] != ' ') {
            vs[count].push(str[i++]);
            if(i>=sz)    //这里要增加判断,否则i>=sz后下次循环str[i]会越界错误
                break;
        }
        count++;
        i++;
    }
    return 0;
}