下面是一个简单的程序简单性病插入 - 擦除 - 插入::双端队列<char>给人奇怪的结果
#include <iostream>
#include <deque>
#include <string.h>
std :: deque <char> d;
int main()
{
const char * X = "abcdefg";
d .insert (d .end(), X, X + strlen (X));
d .erase (d .begin(), d .begin() + 4);
d .insert (d .end(), X, X + strlen (X));
std :: cout .write (& d [0], d .size());
}
我预期的输出是“efgabcdefg”,实际输出,以十六进制,是
65 66 67 00 00 00 00 C9 0B 02
这是“efg ???????”
出了什么问题?
什么是所有的空间? – TemplateRex 2013-05-08 13:49:43
我慷慨地使用空格。我使用连续的非空行仅用于较长的参数列表,或者当短语句形成一个逻辑块时(例如,'start + = used; \ nsize - = used;' – spraff 2013-05-08 13:57:00
不要为小东西出汗,但几乎99.9%程序员在地址/解引用运算符'.',' - >','::','*','&'和'[]'周围不使用空格。你允许在工作中使用它吗?(至少它不像在任何地方没有空格那么糟糕,就像在混淆的C代码竞赛中一样) – TemplateRex 2013-05-08 14:01:02