我無法從字符串創建向量。有人能解釋下面4種情況的區別嗎?據cplusplus.com我預計Case 1
工作相同的Case 2
做同樣的奇怪的原因,但它沒有。字符串向量轉換拋出std :: bad_alloc
typedef std::vector<uint8_t> uint8vec_t;
std::string keySecret()
{
return std::string ("SomeSecret");
}
案例1
// throws std::bad_alloc
uint8vec_t vSecret (keySecret().begin(), keySecret().end());
案例2
// results in a vector with strange length
uint8vec_t vSecret (keySecret().begin(), keySecret().begin() + keySecret().length());
案例3
// throws std::bad_alloc
uint8vec_t vSecret (&keySecret()[0], &keySecret()[keySecret().length()]);
案例4
// throws std::bad_alloc
uint8vec_t vSecret (&keySecret()[0], &keySecret()[0] + keySecret().length());
你的間距是......呃......讓我們稱之爲......非傳統的(並且令人難以置信的混淆閱讀)。 – rubenvb 2014-11-25 14:44:41
@rubenvb,它是GNU風格,http://www.gnu.org/prep/standards/standards.html#Formatting,但我不喜歡C++的所有 – 2014-11-25 14:46:44