#include <iostream>
#include <vector>
int main()
{
std::vector<double> test1(1);
test1[100] = 5.;
std::vector< std::vector <double > > test2(1, std::vector<double>(1,0));
test2[50][100] = 5.;
}
test1
:メモリのサイズ変更と割り当てを適切に行う
test2
:"Segmentation fault (core dumped)"
。なんで?
注:行サイズが等しくないため、マトリックスは使用できません。
概要::
at(int)
境界をチェックし、必要に応じて例外をスローします-サイズ変更なし
operator[](int)
:境界をチェックしません-サイズ変更なし
push_back()
capacity()
:現在の容量が小さい場合、サイズ変更は2倍になります
size()
:の要素数vector
capacity()
:再割り当てが必要になる前に保持する最大要素