2017-10-04 44 views
-1

如何處理從任意CSV數據讀取時的不同數據類型?解析一般CSV讀取函數時如何處理不同的數據類型? (沒有明確指定)

也就是說,如何處理不同的數據類型而不明確指定它們呢?

+1

你不能。您必須指定將出現的類型,如何確定哪些字節表示哪些類型以及如何解析它們。你可以定義一切都是一個字符串,或者所有的數字都是「雙」來組合一些情況。最終取決於你想要對數據做什麼(打印到控制檯並計算平均值將是非常不同的要求),但是你沒有在問題中說明。 – nwp

+1

CSV確實沒有不同的數據類型。也就是說,一切都可能是一個字符串,同一列可以包含可以是數字的東西,也可以是不能的東西。 –

+0

@nwp我正在嘗試構建一個通用解析器。我想爲每個矢量使用throw catch,但是這會非常混亂...... CSV中的一些數據可能是std :: string,其他的可能是int或float。試圖瞭解如何在不指定數據類型的情況下手動指定數據類型,而不使用嘗試投射整個矢量的throw catch語句。 – Greg

回答

0

您需要使用std::any - 請參閱http://en.cppreference.com/w/cpp/utility/any

將值存儲到一個std::vector<std::vector<std::any>>

+0

我認爲變體會更適合,因爲可以放入CSV的類型集是固定的 – AMA

+0

解析器可能會將某些條目解析爲其他類型 - 可能是Color? –

相關問題