[英]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.