#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;
int main(void)
{
system("pause");
return 0;
}
void test01()
{
vector<int> v;
//每一個容器都有自己的迭代器,迭代器是用來遍歷容器中的元素
//v.begin()回傳迭代器,這個迭代器指向容器中第一個資料
//v.end()回傳迭代器,這個迭代器指向容器元素的最后一個元素的下一個位置
//vector<int>::iterator 拿到vector<int>這種容器的迭代器型別
/* vector構造賦值
vector<T> v; //默認構造
vector(v.begin(), v.end()); //將v[begin(), end()]中的元素拷貝本身
vector(n, elem); //建構式將n個elem拷貝給本身
vector(const ventor &vec); //拷貝建構式
vector& operator=(const vector &vec); //多載等號運算子
assign(beg, end); //將[beg, end]區間中的資料拷貝賦值給本身
assign(n, elem); //將n個elem拷貝賦值給本身
*/
/* ventor容量和大小
empty(); //判斷是否為空
capacity(); //容器的容量
size(); //元素個數
resize(int num); //重新指定容器長度為num, 若容器變長,以默認值指定新位置
resize(int num, elem) //重新指定,若變長,則以elem填充位置,變短則洗掉多余
*/
/* vector插入洗掉
push_back(ele); //尾部插入元素ele
pop_back(); //洗掉最后一個
insert(const_iterator pos, ele); //迭代器指向位置pos插入元素ele
insert(const_iterator pos, int count, ele) //迭代器指向位置pos插入count個ele
erase(const_iterator pos); //洗掉迭代器指向的元素
erase(const_iterator start, const_iterator end); //洗掉迭代器從start到end的元素
clear(); //洗掉容器中的所有元素
*/
/* vector資料存取
at(int idx); //回傳索引idx所指的資料
operator[]; //回傳[]處的資料
front(); //回傳容器中第一個資料元素
back(); //回傳容器中最后一個資料元素
*/
/* vector互換容器和預留空間
swap(vec); //將vec與本身的元素互換
reserve(int len); //容器預留len個元素長度,預留位置不初始化,元素不可訪問
*/
v.push_back(1);
v.push_back(2);
}
void test02()
{
// 字串大小用size()
/* 字串創建操作
string() //創建一個空字串
string(const char* s) //使用字串s初始化
string(const string& str) //使用string物件初始化另一個string
string(int n, char c) //使用n個字符c初始化
*/
/* 字串賦值操作
string& operator = (const char *s); //char*型別字串賦值給當前的字串
string& operator = (const string &s); //把字串s賦值給當前字串
string& operator = (char c); //把字符c賦值給當前字串
string& assign(const char *s); //把字串s賦給當前字串,
string& assign(const char *s, int n); //把字串s的前n個字符賦值給當前字串
string& assign(const string &s); //把當前字串s賦給當前字串
string& assign(int n, char c); //把n個字符賦值給當前字符
*/
/* 字串拼接
string& operator += (const char * str); //多載+=運算子
string& operator += (const char c); //多載+=運算子
string& operator += (const string &str); //多載+=運算子
string& append(const char *s); //把字串連接到當前字串結尾
string& append(const char *s, int n) //把字串s的前n個字符連接到當前字串結尾
string& append(const string &s) //把字串s連接到末尾
string& append(const string &s, int pos, int n); //字串s中從pos開始的n個字串連接到字串末尾
*/
/* 字串查找替換
* find查找是從左往后,rfind從右往左
* find找到字串后回傳查找的第一個字符位置,找不到回傳-1
* replace在替換時,要指定從哪個位置起,多少個字符,替換成什么樣的字串
int find(const string &str, int pos = 0); //查找str第一次出現的位置,從pos開始
int find(const char* s, int pos = 0); //查找s第一次出現的位置,從pos開始
int find(const char* s, int pos = 0, int n); //從pos開始查找s的前n個字符第一次位置
int find(const char c, int pos = 0); //查找字符c第一次出現的位置
int rfind(const string& str, int pos = npos) const; //查找str最后一次出現的位置,從pos開始找
int rfind(const char* s, int pos = npos) const; //查找s最后一次出現的位置,從pos開始
int rfind(const char* s, int pos, int n) const; //從pos查找s的前n個字符最后一次位置
int rfind(const char c, int pos = 0) const; //查找字符c最后一次出現的位置
string& replace(int pos, int n, const string &str); //替換從pos開始n個字符為字串str
string& replace(int pos, int n, const char *s) //替換從pos開始的n個字符為字串s
*/
/* 字串比較存取
按照字符的ascii碼進行對比,=回傳0,>回傳1,小于回傳-1
int compare(const string &s) const; //與字串s比較
int compare(const char *s) const; //與字串s比較
char& operator[](int n); //通過[]取字符
char& at(int n); //通過at()方法去字符
*/
/* 字串插入洗掉
string& insert(int pos, const char* s); //插入字串
string& insert(int pos, const string& str); //插入字串
string& insert(int pos, int n, char c); //在指定位置插入n個字符c
string& erase(int pos, int n = npos); //洗掉從Pos開始的n個字符
*/
/* string子串
string substr(int pos = 0, int n = npos) const; //回傳由pos開始的n個字符組成的字串
*/
string s1;
}
void test03()
{
/* deque與vector的區別:
vector對于頭部的插入洗掉效率低,資料量越大,效率越低
deque相對而言,對頭部的插入洗掉速度回比vector快
vector訪問元素時的速度會比deque快,這和兩者內部實作有關
*/
/* deque內部作業原理:
deque內部有個中控器,維護每段緩沖區中的內容,緩沖區中存放真實資料
中控器維護的是每個緩沖區的地址,使得使用deque時像一片連續的記憶體空間
deque容器的迭代器也是支持隨機訪問的
*/
/* 構造和賦值和vector一樣
deque沒有容量的概念,其余和vector一樣
*/
/* 插入洗掉
比vector多了push_front(), pop_front();
*/
/* 資料存取和vector一樣
*/
/* deque排序---包含頭檔案<algorithm>
sort(iterator beg, iterator end); //對beg和end取鍵元素排序
*/
}
void test04()
{
/* stack 容器
建構式:
stack<T> stk; //stack采用模板實作,stack物件默認構造型別
stack(const stack &stk); //拷貝建構式
賦值操作:
stack& operator=(const stack &stk) //多載等號運算子
資料存取:
push(elem); //向堆疊頂壓入元素
pop(); //從堆疊頂取出元素
top(); //回傳堆疊頂元素
大小操作:
empty(); //判斷堆疊是否為空
size(); //回傳堆疊的大小
*/
}
void test05()
{
/* queue容器
建構式:
queue<T> que; //queue采用模板類實作,默認構造
queue(const queue &que); //拷貝構造
賦值操作:
queue& operator=(const queue &que); //多載等號
資料存取:
push(elem); //往隊尾添加元素
pop(); //從隊頭移除第一個元素
back(); //回傳最后一個元素
front(); //回傳第一個元素
大小操作:
empty(); //判斷堆疊是否為空
size(); //回傳大小
*/
}
void test06()
{
/* list容器,鏈式存盤
*/
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/201304.html
標籤:其他
