C C 高階學習筆記(二) 容器vector

2021-07-22 18:07:04 字數 2042 閱讀 2467

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 迴圈返回屬性。如上直接在物...