的最佳方式我有一個載有int32_t的向量,我正在使用Windows 64位。我需要將它轉換爲一個int數組。什麼是將矢量<int32_t>轉換爲int []
,因爲在我的特定平臺int32_t和INT基本上是相同的類型,我可以這樣做:(假設數組有足夠的空間來容納從向量中的所有數據)
int out[1000]; //assuming that in has less data than 1000
std::vector<int32_t> in=getdata();
memcpy(out,&int[0],in.size());
但是它適用於平臺uint32_t和int本質上是相同的類型。
要做到這一點,以確保它是獨立於平臺,並可以在任何平臺,例如int不是32位工作的最佳方式是什麼?
一個'unsigned int'可以保存'int'不能這樣的值,所以你可能不會獲得相同的值。 – NathanOliver
我有點擔心*本質上是相同的類型*,因爲即使'uint32_t'是'unsigned int','int'也是有符號的,所以對於超出INT_MAX的任何東西都是關閉的。 – dhke
更新了問題以反映您的意見。 – mans