Coo*_*der 4 c++ vector max-size
我有班苹果
class apples
{
private:
double x;
double y;
double z;
public:
//some methods
};
Run Code Online (Sandbox Code Playgroud)
我想将指针存储到矢量中的苹果对象.我这样做是为了在任何文件中创建任何对象并使用任何文件中的任何对象.我使用以下代码来确定我可以存储在该向量中的指针的最大数量
int _tmain(int argc, _TCHAR* argv[])
{
vector<apples *> myvector;
cout<<"max :"<<myvector.max_size();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它给了我:
1073741823
Run Code Online (Sandbox Code Playgroud)
现在,我的问题是,我真的可以在该向量中存储1073741823没有指针,或者这是向量的内存限制(即1073741823字节)吗?
所以如果有2个向量
vector<int> A
&
vector<double> B
Run Code Online (Sandbox Code Playgroud)
A有1073741823元素和B还有1073741823元素?我要求澄清一点, 矢量可以存储的元素的最大数量不依赖于存储的实体类型(int或double)? (这与向量的当前容量无关!)另外,指向apple对象的指针的大小(不要求苹果对象的大小!)?谢谢.
这是用于在向量中存储元素的库限制.
返回向量容器可容纳的最大元素数.
这不是当前分配给向量的存储空间量(可以使用成员向量:: capacity获得),但是由于系统或库实现限制,向量可能达到的最大可能大小.
因此,您不能存储超过它(并且由于系统限制,实际上可能会少于它)
换句话说,即使你有最好的资源(内存,CPU,......)能力,你的元素有最小的尺寸,你也不能存储超过 max_size()
并根据max_size()
头文件中的注释:返回最大可能%向量的大小.