我有兩個size_t
整數,並需要採取他們的產品。我應該存儲結果的類型是什麼?類型,可以容納兩個size_t產品
#include <limits>
#include <vector>
#include <iostream>
int main() {
typedef std::size_t size_t;
typedef unsigned long long product_t;
std::vector<double> a(100000);
std::vector<double> b(100000);
size_t na {a.size()};
size_t nb {b.size()};
product_t prod = na * nb;
std::cout << prod << std::endl;
}
它看起來像GCC定義size_t
爲unsigned long long
,所以我不能保證我將能夠存儲產品......任何的替代品?
編輯:
這裏的關鍵是,我正在開發一個需要處理任意大小的矢量庫,計算它
double stat = computeStatisticOnVectors(a, b);
一些統計,然後計算如下:
double result = stat/prod
事情我已經在Windows頭看到的是一個叫[ULARGE_INTEGER(http://msdn.microsoft.com/en-us/library/windows/desktop/aa383713(V = vs.85)的.aspx結構),其目的是保存極其龐大的數字。這可能會幫助你。 – computerfreaker
毫無意義,size_t表示可以分配的內存量。將兩個64位處理器相乘並不能爲您提供128位處理器。 –
@HansPassant它也代表了一些數據點可以儲存,並在某些情況下是有意義的定義對這些數據點操作計數... – Calimo