簡體   English   中英

在C ++中將int轉換為vector

[英]casting of an int to vector in C++

我已經看過這段代碼並且很難理解如何將int轉換為vector<int>可能有效!

 std::vector<int> v = static_cast<std::vector<int>>(10);
 cout << v.size(); // this prints 10

根據我的理解,int可以說是一維的,而矢量是二維的。

怎么可能被投射到另一個? 如果可能的話,我可以看到至少十幾種方法可以將int轉換為它的集合。 為什么這個實例選擇“大小”? 這是一些內置的慣例嗎?

怎么可能被投射到另一個?

static_cast<T>(a);

如果a可用於構造T的實例,則有效。

它相當於:

T(a);

C ++ 11標准

4否則,表達e可以顯式轉換到類型T使用static_cast形式static_cast<T>(e) ,如果聲明T t(e); 對於一些發明的臨時變量t

在您的情況下,它是有效的,因為std::vector具有以下構造函數:

explicit vector( size_type count, 
                 const T& value = T(),
                 const Allocator& alloc = Allocator());

PS

這條線

 std::vector<int> v = static_cast<std::vector<int>>(10);

可以簡化為

 std::vector<int> v(10);

很難說出為什么編寫這行代碼的人會想到以這種方式編寫代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM