Zi 字媒體
2017-07-25T20:27:27+00:00
純C++ ArrayList 範例 [使用Vector]
資料來源:http://www.cplusplus.com/forum/general/197176/
https://mropengate.blogspot.com/2015/07/cc-vector-stl.html
GITHUB: https://github.com/jash-git/CB_CPP_ArrayList
#include
#include
#include
#include
using namespace std;
//http://www.cplusplus.com/forum/general/197176/
/*
https://mropengate.blogspot.com/2015/07/cc-vector-stl.html
Vector 的特色
●支援隨機存取
●集合尾端增刪元素很快 : O(1)
●集合中間增刪元素比較費時 : O(n)
●以模板(泛型)方式實現,可以儲存任意類型的變數,包括使用者自定義的資料型態。
●有一些容器提供 stable iterator 保證,很不幸的 vector 不保證。因此存在一些可能造成 vector iterator 失效的操作。
1. 存取元素的用法
vec[i] - 存取索引值為 i 的元素值。
vec.at(i) - 存取索引值為 i 的元素的值,
vec.front() - 回傳 vector 第一個元素的值。
vec.back() - 回傳 vector 最尾元素的值。
2. 新增或移除元素的用法
vec.push_back() - 新增元素至 vector 的尾端,必要時會進行記憶體配置。
vec.pop_back() - 刪除 vector 最尾端的元素。
vec.insert() - 插入一個或多個元素至 vector 內的任意位置。
vec.erase() - 刪除 vector 中一個或多個元素。
vec.clear() - 清空所有元素。
3. 取得長度/容量的用法
vec.empty() - 如果 vector 內部為空,則傳回 true 值。
vec.size() - 取得 vector 目前持有的元素個數。
vec.resize() - 改變 vector 目前持有的元素個數。
vec.capacity() - 取得 vector 目前可容納的最大元素個數。這個方法與記憶體的配置有關,它通常只會增加,不會因為元素被刪減而隨之減少。
重新配置/重設長度
vec.reserve() - 如有必要,可改變 vector 的容量大小(配置更多的記憶體)。在眾多的 STL 實做,容量只能增加,不可以減少。
4. 疊代 (Iterator)
vec.begin() - 回傳一個 iterator,它指向 vector 第一個元素。
vec.end() - 回傳一個 iterator,它指向 vector 最尾端元素的下一個位置(請注意:它不是最末元素)。
vec.rbegin() - 回傳一個反向 iterator,它指向 vector 最尾端元素的。
vec.rend() - 回傳一個 iterator,它指向 vector 的第一個元素。
*/
void Pause()
{
printf("Press Enter key to continue...");
fgetc(stdin);
}
int main() {
std::vector arr;
arr.push_back(2.02);
arr.push_back(1.02);
arr.push_back(3.03);
std::sort(arr.begin(), arr.end());
for (int i=0;i
寫了
5860316篇文章,獲得
23313次喜歡