參考胡凡《演算法筆記》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<<**/ string str = "abcxyz",str2 = "123456";
// 寫opd也行
// // cout/ str.insert(str.begin() + 3,str2.begin()+2,str2.end()-1);
// cout/// str.erase(str.begin()+4);
// cout/ str.erase(3,2);
// cout/ str.erase(str.begin()+2,str.end()-1);
// cout/ str.clear();
//至此知道了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...