อะไรคือสิ่งที่capacity()
ของstd::vector
ซึ่งถูกสร้างขึ้นโดยใช้ constuctor เริ่มต้น? ฉันรู้ว่าค่าsize()
เป็นศูนย์ เราสามารถระบุว่าเวกเตอร์ที่สร้างขึ้นเริ่มต้นไม่เรียกการจัดสรรหน่วยความจำฮีปได้หรือไม่?
std::vector<int> iv; iv.reserve(2345);
วิธีนี้มันจะเป็นไปได้ที่จะสร้างอาร์เรย์ที่มีสำรองโดยพลการโดยใช้การจัดสรรเดียวเช่น สมมติว่าด้วยเหตุผลบางประการฉันไม่ต้องการเริ่มsize()
วันที่ 2345
ตัวอย่างเช่นบน Linux (g ++ 4.4.5, kernel 2.6.32 amd64)
#include <iostream>
#include <vector>
int main()
{
using namespace std;
cout << vector<int>().capacity() << "," << vector<int>(10).capacity() << endl;
return 0;
}
0,10
ถูกพิมพ์ เป็นกฎหรือไม่หรือผู้ขาย STL ขึ้นอยู่กับ?