vector可以理解為存放各種相同物件的容器,相當於乙個可變長的陣列,元素可以是各種物件包含標頭檔案歡迎到 我的部落格 檢視更詳細的內容
#include
定義和初始化
vector
ivec1; //定義int容器
vector
ivec2(ivec1); //複製ivec1的內容到ivec2
vector
ivec3(10,-1); //10個元素,都初始化為-1
vector
svec(10,"hi!"); //10個string,初始化為「hi!」
v.empty(); //如果v為空,返回true
v.size(); //返回v的元素個數
v.push_back(t); //新增值為t的元素到v中
v[n]; //返回位置n的元素
v1 = v2; //賦值
v1 == v2; //比較,相等返回true
!=,<,<=,>,>= //保留原有的意義
v.insert(vec.begin()+i,a); //在v中第i+1個元素前面插入a;
v.erase(vec.begin()+2); //刪除v中第3個元素
v.erase(vec.begin()+i,vec.end()+j); //刪除v區間[i,j-1]的元素
v.clear(); //清空v
迭代器表示容器中的「位置」,可以理解為指向容器中元素的游標,使得編寫與容器型別無關的泛型演算法成為可能迭代器訪問vector
for (vector
::iterator it = str_vec.begin(); it != str_vec.end(); it++) //迭代器訪問vector
cout
<< *it << endl;
在string
中,size_type
的作用有點像這裡的迭代器,可以用於訪問string
中的特定元素,如下:string str("hello world!");
for(string::size_type ix = 0; ix != str.size(); ++ix)
str[ix] = '*';
// vector.cpp : 定義控制台應用程式的入口點。
//#include "stdafx.h"
#include
#include
#include
#include
using
namespace
std;
int main()
//錄入vector各個元素
sort(str_vec.begin(),str_vec.end()); //排序,預設從小到大,包含於標頭檔案#include
cout
<< endl << "sorted elements:"
<< endl;
for (vector
::iterator it = str_vec.begin(); it != str_vec.end(); it++) //迭代器訪問vector
cout
<< *it << endl;
cout
<< "which element do you want to check:";
cin >> i;
line = str_vec[i]; //下標訪問vector
cout
<< "length:"
<< line.length() << endl;
return
0;}
c c 學習筆記二(2006 11 15)
靜態與動態記憶體分配的兩個主要區別 1 靜態物件是有名字的變數,我們直接對其進行操作。而動態 物件是沒有名字的變數,可通過指標間接地對它進行操作。2 靜態物件的分配與釋放由編譯器自動處理。動態物件的分配 與釋放,必須由程式設計師顯式地管理,由new和delete兩個表示式 完成。new的兩個版本 1...
筆記2 C C 高階
記憶體的底層知識 c c 記憶體管理 快取記憶體的原理 記憶體區域的劃分 條件編譯 這部分主要是弄清楚指標,const,陣列,函式,引用相互之間的關係。const簡介 const修飾指標 const變數和const指標 c 指標和引用的區別 c 指標用法總結 指標函式與函式指標的區別 指標的指標和陣...
Javascript高階程式設計學習筆記(二)
屬性型別 1,資料屬性 var person configurable 表示能否通過 delete 刪除屬性從而重新定義屬性,能否修改屬性的特性,或者能否把屬性修改為訪問器屬性。如上直接在物件上定義的屬性,預設為 true。enumerable 表示能否通過 for in 迴圈返回屬性。如上直接在物...