使用C風格陣列初始化vector陣列
阿新 • • 發佈:2019-02-19
#include <iostream> #include <vector> using namespace std; /* 總結:使用陣列初始化vector陣列:必須指出陣列第n個元素以及陣列n+x元素的下一位置的地址 如果超過原陣列的下一個元素的範圍,就會把超出部分初始化為垃圾數字 */ int main() { const size_t arr_size = 6; int arr[arr_size] = {0, 1, 2, 3, 4, 5}; vector<int> vec0(arr, arr+arr_size); for (vector<int>::iterator i = vec0.begin(); i!=vec0.end(); ++i) //6 cout << *i << ends; //0, 1, 2, 3, 4, 5 cout << endl; vector<int> vec1(arr, arr + arr_size+1); for (vector<int>::iterator i = vec1.begin(); i != vec1.end(); ++i) cout << *i << ends; //0, 1, 2, 3, 4, 5,垃圾 cout << endl; vector<int> vec2(arr+1, arr + 3); for (vector<int>::iterator i = vec2.begin(); i != vec2.end(); ++i) cout << *i << ends; // 1, 2 system("pause"); }
1、程式中要儘量使用string陣列
2、編譯器擴充套件:特定編譯器為語言新增的特性。依賴於編譯器開展的程式很難移植到其他的編譯器
3、複合型別:使用其他型別定義的型別。如陣列,指標,引用
4、const void *:可以指向任意const型別的指標型別。
5、delete[] p:釋放由new動態分配的陣列。p必須是指向動態建立陣列中第一個元素的陣列。
6、動態分配:在程式自由儲存區[堆]建立的物件。該物件一建立就一直存在,直到顯示釋放為止。
7、自由儲存區:程式用來儲存動態建立物件的記憶體區域
8、ptrdiff_t:儲存兩個指標的差值