Büyük bir ikili dosyayı (~ 1GB) std::vector<double>
içine okumalıyım. Şu anda infile.read
kullanarak tüm şeyi char *
arabelleğe kopyalamak için kullanıyorum (ve aşağıda gösterilen) ve şu anda ile doubles
içine tüm şeyi dönüştürmeyi planlıyorum. Kesinlikle doubles
'u vector
içine koymanın bir yolu olmalı? o yüzden ben de ikili dosya biçimi konusunda emin değilimBir ikili dosyayı bir vektöre verimli şekilde nasıl okuyacağınız C++
, veri muhtemelen tüm dosyanın tamamını varsayarsak
ifstream infile(filename, std--ifstream--binary);
infile.seekg(0, infile.end); //N is the total number of doubles
N = infile.tellg();
infile.seekg(0, infile.beg);
char * buffer = new char[N];
infile.read(buffer, N);
Çiftler kullanmak istediğiniz bir neden var mı? İkili veri normalde bir char olarak temsil edilir, çünkü çoğu platformda tek bir bayt kaplar. – Freddy
Dosya biçimini bilmiyorsanız, nasıl dönüştürmeyi planladınız? –
Ummmmm .... biçimi sadece bir bayt akışından başka bir şey olarak bilmeyen bir ikili dosya okumak ister misiniz? – luk32