矢量字符串错误

时间:2018-06-16 06:35:53

标签: c++ string vector substr

以下代码中有一个我没有得到的错误,我尝试了调试,但它没用。

#include <iostream>
#include <algorithm>
#include <string>

    using namespace std;

    int main()
    {
        int n;

        string s ;
        cin>>s;

        vector<string> v ;

        for (int i=0;i<s.size()-1;i+=2)
        {
            v[i]=s.substr(i,2);
        }

    }

1 个答案:

答案 0 :(得分:0)

有几个问题:

  1. 缺少#include <vector> - 在某些编译器上它可以在没有它的情况下工作。
  2. 向量的大小为零,因此operator []导致分段错误
  3. -1 in loop不需要
  4. 即使向量的大小正常,也不需要按i索引,因为它增加了2,所以你正在跳过元素。
  5. 所以它应该是这样的:

    for (size_t i=0; i<s.size(); i+=2)
    {
        v.push_back(s.substr(i,2));
    }