C 標準模板庫STL運用(1)

2021-09-25 05:55:37 字數 2787 閱讀 3103

參考胡凡《演算法筆記》p191-208

主要是vector set string的內容

是在code::block 17.12上跑的

#include #include #include #include #include using namespace std;

int main()

vi.pop_back();

vector::iterator it =vi.begin();

for (int i = 0; i < 5; i++)

for (vector::iterator it = vi.begin();it != vi.end();it++)

printf("\n%d\n",vi.size());

vi.insert(vi.begin()+2,-1);

for (vector::iterator it = vi.begin();it != vi.end();it++)

printf("\n");

vi.erase(vi.begin()+5);

for (vector::iterator it = vi.begin();it != vi.end();it++)

vi.erase(vi.begin()+2,vi.begin()+4);

printf("\n");

for (vector::iterator it = vi.begin();it != vi.end();it++)

vi.clear();

printf("\n%d\n",vi.size());

以上,可以發現vector完全可以完成陣列的諸多功能,且方便。

目前我知道

1、vi.begin()好用,就可以看作是vi[0]。vi.end()作為迭代器結尾標識。

2、push_back()

pop_back()

size()

clear()

insert(it,x)

erase()

erase(first,last)

erase(vi.begin(),vi.end()) == vi.clear();

q1:每個括號內可以有什麼內容?

q2:迭代器為什麼叫這個名字?和指標的異同?

q3: 怎樣用向量實現多維陣列?

}*/// set 集合 內部自動有序且不含重複元素的容器

/*printf("\n");

set::iterator it = st.find(2);

printf("%d ",*it);

printf("\n");

st.erase(st.find(5));

for(set::iterator it = st.begin(); it != st.end();it++)

st.erase(7);

printf("\n");

for(set::iterator it = st.begin(); it != st.end();it++)

printf("\n");

st.erase(st.find(4),st.end());

for(set::iterator it = st.begin(); it != st.end();it++)

printf("\n");

printf("%d\n",st.size());

st.clear();

printf("%d\n",st.size());

//至此,了解了set主要是用於去重和按公升序排序。每個元素是惟一的

//q1: st.find()返回的是什麼?

//q2:set錄入元素豈不是很麻煩?

}*/// string

/*//printf("%s\n",str.c_str());

// for(string::iterator it = str.begin();it != str.end(); it++)

// string str1 = "abc";

// string str2 = "xyz";

// string str3;

//// str3 = str1 + str2;

// str1 += str2;

// cout<?

//q3 :str.length和str.size區別

//q4 :cout<<**

// 寫opd也行

// // cout

// cout

// cout

// cout

// cout

//至此知道了string的容器用法,總的來說和前兩個有相似之處,這或許就是stl的好處吧。

// string::npos 是乙個常數。-1 或者說是4294967295(表示無符號整數的十進位制最大值。如果是16進製制,那麼是0xffffffff。也可以解釋為乙個ip位址(v4) 255.255.255.255 )

}*/cout << "\nhello world!" << endl;

return 0;

}

C 標準模板庫STL

stl是標準c 庫的一部分。stl模板類為c 提供了完善的資料結構和演算法。stl的特點 型別引數化 即stl的 中可處理任意自定義型別的物件。泛型程式設計 generic programming 它以模板為基礎,弱化了 實體型別的差異,簡化了程式設計時問題抽象的模型,提供了更好的 封裝性和彈性。s...

C 標準模板庫STL

stl 標準模板庫 包括容器,演算法,迭代器 容器用來儲存資料,比如vector,list,堆疊等,string也算 一共有八個 演算法就是對容器進行操作,比如增刪改查資料 迭代器用來遍歷容器itreator 用指標的方式來遍歷容器的資料 注 平時使用的時候大部分時候我們都用上了,但是面試的時候不能...

c (標準模板庫STL)

stl是一種泛型程式設計 generic programming 容器主要有以下分類 例如 容器的成員函式begin 返回指向容器中第乙個元素的迭代器 end 返回指向容器中最後乙個元素後繼位置的迭代器。下面通過stl中提供的乙個泛型函式find 來說明迭代器與泛型演算法的關係 首先看下stl對於f...