字符串向量错误

vector of strings error

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

#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. 缺少 #include <vector> - 在某些编译器上它可以在没有它的情况下工作。
  2. 向量的大小为零,因此 operator[] 导致分段错误
  3. -1 不需要循环
  4. 即使向量的大小没问题,也不需要按 i 进行索引,因为它会递增 2,因此您将跳过元素。

所以它应该是这样的:

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