字符串向量错误
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);
}
}
有几个问题:
- 缺少
#include <vector>
- 在某些编译器上它可以在没有它的情况下工作。
- 向量的大小为零,因此 operator[] 导致分段错误
-1
不需要循环
- 即使向量的大小没问题,也不需要按
i
进行索引,因为它会递增 2,因此您将跳过元素。
所以它应该是这样的:
for (size_t i=0; i<s.size(); i+=2)
{
v.push_back(s.substr(i,2));
}
以下代码中有一个我没有得到的错误,我尝试调试但没有用。
#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);
}
}
有几个问题:
- 缺少
#include <vector>
- 在某些编译器上它可以在没有它的情况下工作。 - 向量的大小为零,因此 operator[] 导致分段错误
-1
不需要循环- 即使向量的大小没问题,也不需要按
i
进行索引,因为它会递增 2,因此您将跳过元素。
所以它应该是这样的:
for (size_t i=0; i<s.size(); i+=2)
{
v.push_back(s.substr(i,2));
}