向量容器vector模板
#include #include using namespace std; #define SIZE 10 template class CVector { private: T *m_data; //資料 int m_size; //向量長度 int capacity; //向量容器初始大小 public: CVector() { capacity = SIZE; m_data = new T[capacity]; m_size = 0; }//無參建構函式,向量容器為初始長度 CVector(int n) : m_size(n), capacity(n) { m_data = new T[capacity]; }//有參建構函式,引數為向量容器的長度 CVector(int n, T x) : m_size(n), capacity(n) { capacity = SIZE; m_data = new T[capacity]; for (int i = 0; i < m_size; i++) m_data[i] = x; }//有參建構函式,引數為換成那個度與初始化內容 CVector(const CVector &v) { m_size = v.m_size; capacity = v.capacity; m_data = new T[capacity]; for (int i = 0; i < m_size; i++) m_data[i] = v.m_data[i]; }//拷貝建構函式 ~CVector() { delete[]m_data; m_size = 0; capacity = 0; }//解構函式 int size() const { return m_size; }//返回向量容器的長度 void resize(int newSize) { if (newSize < capacity) return;//若不符合條件則退出 T *temp = new T[newSize];//定義更大的空間 for (int i = 0; i < m_size; i++) temp[i] = m_data[i]; delete[]m_data;//釋放原有空間 m_data = temp;//將更大的空間設定為正式空間 capacity = newSize;//定義新的容器大小 }//擴充向量容器 void push_back(T x) { if (m_size == capacity) resize(capacity * 2); m_data[m_size++] = x; }//向向量後面插入一個元素 void pop_back() { m_size--; }//刪除最後一個數據 T &operator[](int i) { if (i >= m_size || i < 0) throw "invalid index:";//下標異常丟擲 return m_data[i]; }//[]下標運算子的過載 }; template void Order(T &Order) //命令函式模板 { int n; cin >> n; CVector v(n); string order; //命令輸入 T x; //追加的物件 int index; //插入地址的下標 while (cin >> order) { try { if (order == "push") {//push物件,在向量尾部追加物件 cin >> x; v.push_back(x); } else if (order == "put") {//put下標加物件,在特定下標處插入物件 cin >> index >> x; v[index] = x; } else if (order == "fetch") {//fetch用下標取出物件,下標越界處理 cin >> index; cout << v[index] << " "; } else if (order == "quit") break; } catch (const char *msg) { cout << msg << index << " "; } } cout << endl; } int main() { string order; int n; while (cin >> order) { if (order == "int") Order(n); if (order == "string") Order(order); } return 0; }
相關推薦
向量容器vector模板
#include #include using namespace std; #define SIZE 10 template class CVector { private: T *m_data; //資料 int m_size; //向量長度 int ca
Chapter9.4 陣列的替代品 向量容器vector,是一個快速的動態分配記憶體的陣列
1.動態陣列,可以在執行階段設定長度;而靜態陣列的長度是常量; 2.向量容器vector具有陣列的快速索引方式; 3.可以插入和刪除元素; 向量容器vector的定義和初始化 vector<double>vec1; /**向量容器的名稱是vec1,裡面放置double型別
vector向量容器(常用的使用方法總結)
不但 追加 begin vector for 一個 添加 tor 初始化 關於STL中vector容器的學習,編譯運行後邊看代碼,邊看執行結果效果更佳,還是想說看別人的代碼一百遍,不如自己動手寫一遍。 vector向量容器不但能像數組一樣對元素進行隨機訪問,還能隨時在尾部插
c++ Vector向量容器
使用Vector需要先在標頭檔案定義#include<vector> 1:通過例項瞭解如何賦值,新增,刪除 #include <iostream> #include<vector> using namespace std; int main()
vector向量容器的過載實現及其常見成員函式
vector的過載實現以及常見成員方法 文章目錄 vector的過載實現以及常見成員方法 1,vector定義 2,vector過載的實現 3,vector常見的成員方法
一、Vector向量容器
簡介:Vector向量容器可以簡單的理解為一個數組,它的下標也是從0開始的,也就是說,如果vector容器的大小是n,那麼,元素的下標是0~n-1。使用時可以不用確定大小。vector具有記憶體自動管理的功能,對於元素的插入和刪除,它可以進行動態調整所佔用的記憶體空間,它裡面有很多系統已經定義好了的
STL—vector(向量容器)
什麼是vector: vector是一種可以完全代替陣列的高效容器。完全代替陣列的意思就是,陣列能幹的vector都能幹,如隨機訪問元素,用下標遍歷元素等。陣列不能幹的它也能幹,如記憶體自動管理功能,即
vector(向量容器)
vector相當於動態陣列,可以從尾部快速的插入和刪除元素。支援隨機訪問。 如果初始分配的空間不夠,當超過空間大小時會重新分配更大的空間(通常按照兩倍大小擴充套件),此時需要進行大量的元素複製,從而增加了效能開銷。 1、定義vector向量的幾種方式 ve
第六章Vector向量容器
作為陣列的一個泛化的vector容器,不僅可以進行陣列一樣的元素隨機訪問,還可以在容器的尾端插入新元素。 vector具有自動的記憶體管理功能,對於元素的插入和刪除,可動態調整所佔用的記憶體空間。 建立vector物件 (1)
vector向量容器的刪除
erase()方法可以刪除vector中迭代器所指的一個元素或一段區間中所有元素。 clear()方法則一次性刪除vector中所有的元素。 #include<vector> #include<iostream> using namespace
STL 向量容器(vector)
向量容器使用動態陣列儲存、管理物件。因為陣列是一個隨機訪問資料結構,所以可以隨機訪問向量中的元素。在陣列中間或是開始處插入一個元素是費時的,特別是在陣列非常大的時候更是如此。然而在陣列末端插入元素卻很快。實現向量容器的類名是vector(容器是類模板)。包含vector類的標
C++STL之vector向量容器
++i 反向 規則 push_back 初始化 調整 har algorithm 大小 vector向量容器 vector向量容器不但能向數組一樣對元素進行隨機訪問, 還能在尾部插入元素 vector具有內存自動管理的功能, 對於元素的插入和刪除, 可動態調整所占
STL淺析——序列式容器vector的構造和內存管理: constructor() 和 push_back()
技術 eal ace name des 分享 names private rst 咱們先來做一個測試capacity是容器容量,size是大小: #include <iostream> #include <vector> using names
簡單重寫容器vector
begin temp int sizeof col push pub int() clear 1 #pragma once 2 #include <iostream> 3 using namespace std; 4 5 template
143.vector模板庫
change 數組 eal sizeof hang names ont bsp chan myvector.h 1 #pragma once 2 #include <initializer_list> 3 #include <iostream&g
向量(vector)
數組 抽象數據類型 實現 find 組元 pan 結構 遞增 線性 1.接口與實現 1.1 抽象數據類型:一組數據模型上定義的一組操作 數據類型是(char、int等) 數據結構:基於特定語言的,實現ADT的一整套算法。 1.2 向量:向量是數組的抽象與泛化,由一組元
Silverlight & Blend動畫設計系列十:Silverlight中的坐標系統(Coordinate System)與向量(Vector)運動
過度 highlight 圖片 nbsp mgr ack jpg .com bsp 原文:Silverlight & Blend動畫設計系列十:Silverlight中的坐標系統(Coordinate System)與向量(Vector)運動 如果我們習慣於數學坐
【C++】向量(vector) 基本使用方法及注意事項
介紹: 向量(Vector)是一個封裝了動態大小陣列的順序容器(Sequence Container)。跟任意其它型別容器一樣,它能夠存放各種型別的物件。可以簡單的認為,向量是一個能夠存放任意型別的動態陣列。 特點: 1.順序序列 順序容器中的元素按照嚴格的線性順序排序。可以通過元素
Vertor向量容器
標頭檔案: #include<vector> 定義: vector<int> v; vector<float> v(10); vector<float> v(10,8.6); 初始數目,初始
C++筆記 -- 序列容器vector
向量(vector) 向量(vector)是表示可以改變大小的陣列的序列容器。 就像陣列一樣,向量使用連續的儲存位置作為元素,這意味著它們的元素也可以使用常量指向其元素的偏移來訪問,並且與陣列一樣有效。但與陣列不同是向量的大小可以動態變化,其儲存由容器自動處理。 在內部,向量使用動態分配的陣