矢量<char>到字符串分段错误
vector<char> to string segmentation fault
尝试从vector对象初始化string对象。我应该得到"hey"作为输出。但我有"分割错误"。我做错了什么?
//write a program that initializes a string from a vector<char>
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main ()
{
vector<char> cvec;
cvec[0]='h';
cvec[1]='e';
cvec[2]='y';
string s(cvec.begin(),cvec.end());
cout<<s<<endl;
return 0;
}
vector类的初始大小为0(默认情况下)。这样做会导致未定义行为。(在您的情况下,是分段错误)
你应该用push_back()
代替:
vector<char> cvec;
cvec.push_back('h');
cvec.push_back('e');
cvec.push_back('y');
这将把每个char
附加到向量上。
您需要在向量中分配空间,如下所示:
vector<char> cvec(3);
或者将字符一个一个推入:
vector<char> cvec;
cvec.push_back('h');
cvec.push_back('e');
cvec.push_back('y');
相关文章:
- 在C++中比较来自向量的字符串时出现分段错误
- 分段故障 11,从类函数显示动态 C 字符串
- C++,从文件中读取字符串,分段错误
- 当我在将文件读取到C字符串的2D数组后尝试对任何内容进行定制时,C++分段错误
- 交换两个字符串时访问正确的内存时,我遇到了分段错误
- 在将 unicode 替换为C++字符串中的空格时出现分段错误
- 使用getline和字符串函数C++程序中的分段错误
- 分段错误标准::矢量<标准::字符串>
- C++字符串中的分段错误(核心转储)
- 反转字符串程序中的分段错误
- SDL_RWread返回具有分段错误的字符串
- 当我将字符串放入节点>名称时,为什么会出现分段错误(核心转储)?
- 分配空字符串时出现分段错误
- Node-ffi 绑定到 NULL 终止的 C 字符串数组,但得到“分段错误:11”
- 字符串具有 16 个或更多元素时的分段错误
- 从scanf读取C样式字符串时出现分段错误
- C++ 向量和字符串的分段错误
- 在 main 中搜索字符串的结尾时出现分段错误,但不在函数C++中搜索
- C++ 中的字符串抛出分段错误
- 包含字符串值的结构在使用动态内存分配创建后进行赋值时会导致分段错误