list and vector 查詢等等

2021-06-22 22:32:15 字數 3249 閱讀 6303

#include

#include

#include

#include

#include

using namespace std;

mfc工程中:

void cvectortestdlg::onbutton1() ;

*/cstring strmsg;

entry phone_book1[10];

phone_book1[0].name="aaa";

phone_book1[0].nomber=10;

strmsg.format("使用陣列:%s",phone_book1[0].name.c_str());

messagebox(strmsg);

///vector(有整形索引,可視為可變陣列)

vectorphone_book(10);

phone_book[0].name="aaa";

phone_book[0].nomber=0;

strmsg.format("使用vector:%s",phone_book1[0].name.c_str());

messagebox(strmsg);

phone_book.resize(phone_book.size()+1);

phone_book[10].name="10aaa";

phone_book[10].nomber=10;

strmsg.format("重建大小後最後乙個元素:%s",phone_book[10].name.c_str());

messagebox(strmsg);

///list(無索引,用於對檢索要求不高,插入刪除又頻繁的場合)

listlphone_book;

entry el;

el.name="name0";//插入在起始

el.nomber=0;

lphone_book.push_front(el);

el.name="name2";//插入在最未

el.nomber=2;

lphone_book.push_back(el);

list::iterator ip;

el.name="name1";//插入在特定位址

el.nomber=1;

ip=lphone_book.begin();

ip++;

lphone_book.insert(ip,el);

typedef list::const_iterator li;

strmsg="list中的元素:";

for (li i=lphone_book.begin();i!=lphone_book.end();++i)

messagebox(strmsg);

///map(索引和返回值的資料型別可自定)

mapmphone_book;//用mphone_book的第乙個型別的某個值去作索引時,返回第二個型別的對應值。

mphone_book["name0"]=0;

mphone_book["name1"]=1;

strmsg.format("name0的號碼:%d",mphone_book["name0"]);

messagebox(strmsg); }

注意:vectorintvalues(10);是10個元素的1個向量

vectorintvalues[10];是陣列,含10個空向量

c++ lists(鍊錶)

lists將元素按順序儲存在鍊錶中. 與 向量(vectors)相比, 它允許快速的插入和刪除,但是隨機訪問卻比較慢.

assign() 給list賦值 

back() 返回最後乙個元素 

begin() 返回指向第乙個元素的迭代器 

clear() 刪除所有元素 

empty() 如果list是空的則返回true 

end() 返回末尾的迭代器 

erase() 刪除乙個元素 

front() 返回第乙個元素 

get_allocator() 返回list的配置器 

insert() 插入乙個元素到list中 

max_size() 返回list能容納的最大元素數量 

merge() 合併兩個list 

pop_back() 刪除最後乙個元素 

pop_front() 刪除第乙個元素 

push_back() 在list的末尾新增乙個元素 

push_front() 在list的頭部新增乙個元素 

rbegin() 返回指向第乙個元素的逆向迭代器 

remove() 從list刪除元素 

remove_if() 按指定條件刪除元素 

rend() 指向list末尾的逆向迭代器 

resize() 改變list的大小 

reverse() 把list的元素倒轉 

size() 返回list中的元素個數 

sort() 給list排序 

splice() 合併兩個list 

swap() 交換兩個list 

unique() 刪除list中重複的元素

附list用法例項:

#include

#include

#include

#include

using namespace std;

//建立乙個list容器的例項listint

typedef listlistint;

//建立乙個list容器的例項listchar

typedef listlistchar;

void main(void)

補充:stl標準函式find進行vector 、list鍊錶查詢

#include

#include

#include

class example

bool operator==(example const & rhs)

private:

int i;

};using namespace std;

int main(void)

{vectorve;

ve.push_back(1);

vector::iterator it;

example elem(1);

it = find(ve.begin(), ve.end(), elem);

cout<

查詢 靜態查詢 順序查詢

查詢表 1 查詢某個 特定的 資料元素是否在查詢表中 2 檢索某個 特定的 資料元素的各種屬性 3 在查詢表中插入乙個資料元素 4 從查詢表中刪去某個資料元素 靜態查詢 1 2 動態查詢 1 2 3 4 順序查詢 儲存結構和查詢操作 與 順序表基本相同 o n include include usi...

查詢 多表查詢。。。

此時你得使用鏈結條件。通過存在於相對應列中的公共值,乙個表中的資料可以被另乙個表的資料鏈結,通常都是主鍵和外來鍵進行鏈結。一般鏈結條件寫在where子句裡。select empno,emp.deptno,loc from emp,dept where emp.deptno dept.deptno 對...

查詢 順序查詢

順序查詢的思路 從資料的第乙個元素開始,依次將掃瞄到的關鍵字和給定值key比較。若當前掃瞄到的關鍵字和key相等,則查詢成功 若掃瞄結束還沒有找到和key相等的元素,就表示查詢給定的值不在表中。時間複雜度 o n 優點 1.演算法簡單 2.對錶結構沒有任何要求,用順序表或者用鍊錶都可以。3.表中元素...