您好,登錄后才能下訂單哦!
嵌入式開發內存管理是非常重要的一環,如何高效的使用vector,既能夠快速擴展存儲空間,并且最大限度的使用存儲空間,避免C數組的越界問題
方案
vector提供多種構造器
1 vector<int> vec;
vec.reserve(10);
默認構造器沒有分配任何的內存空間,直到調用reserve(10),分配10個單位的存儲空間,如果后續存儲空間不夠,會重新分配一塊足夠大的內存,避免了插入失敗
2 vector<int> vec(10);
當前分配10個單位的存儲空間,此時所有的元素初始化為0,如果此時調用push_back函數
添加元素,vec的元素個數是11個
測試代碼
#include <vector>
int TestVector()
{
int v1[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
std::vector<int> v2;
v2.reserve(10);
for (int i = 0; i < 10; i++)
{
v2.push_back(v1[i]);
}
std::vector<int>::iterator iter = v2.begin();
while (iter != v2.end())
{
cout << *iter << endl;
iter++;
}
return 0;
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。