//find 查詢元素,內建型別
void
test01()
;//查詢在區間內出現的第乙個5,返回當前查詢元素迭代器
vector<
int>
::iterator it =
find
(v.begin()
, v.
end(),
5);if
(it != v.
end())
else
}//find 查詢元素,自定義型別,得告訴編譯器如何做對比
class
person
bool
operator==(
const person &p)
else
} string m_name;
int m_age;};
void
test02()
else
}//find_if 按條件查詢-----------------------------------------------
//find_if 查詢元素,內建型別
class
greaterfive};
void
test03()
;//查詢在區間內出現的第乙個5,返回當前查詢元素迭代器
vector<
int>
::iterator it =
find_if
(v.begin()
, v.
end(),
greaterfive()
);if(it != v.
end())
cout << endl;
}else
}//find_if 自定義資料型別
//一元謂詞
class
greaterage};
void
test04()
else
}//adjacent_find 查詢相鄰重複元素
void
test05()
;int count =0;
while(1
)else
} cout <<
"已刪除:"
<< count <<
"個相鄰的重複元素"
<< endl;
for(
auto i : v)
cout << endl;
}//binary_search 查詢指定元素是否存在,存在返回true,不存在返回false
//在無序序列中不可用,二分查詢法
void
test06()
;if(binary_search
(v.begin()
, v.
end(),
6))else
}//count 統計元素個數
void
test07()
;int num1 =
count
(v.begin()
, v.
end(),
2); cout <<
"內建型別的個數為:"
<< num1 << endl;
//需過載==運算子
vectorp;
person p1
("王大錘",18
);person p4
("王大錘",18
);person p2
("喵喵喵",20
);person p3
("嚶嚶嚶",19
);p.push_back
(p1)
; p.
push_back
(p2)
; p.
push_back
(p3)
; p.
push_back
(p4)
; person p5
("王大錘",18
);int num2 =
count
(p.begin()
, p.
end(
), p5)
; cout <<
"自定資料型別:"
<< num2 << endl;
}//count_if 按條件統計元素個數
class
greattwo};
void
test08()
;int num =
count_if
(v.begin()
, v.
end(),
greattwo()
);cout <<
"大於2的數有:"
<< num <<
"個"<< endl;
//需呼叫一元謂詞
vectorp;
person p1
("王大錘",18
);person p2
("喵喵喵",20
);person p3
("嚶嚶嚶",19
);person p4
("王小錘",21
);p.push_back
(p1)
; p.
push_back
(p2)
; p.
push_back
(p3)
; p.
push_back
(p4)
;int num2 =
count_if
(p.begin()
, p.
end(),
greaterage()
);cout <<
"自定資料型別:"
<< num2 << endl;
}int
main()
C STL的查詢演算法
假設你有乙個序列容器,或者有一對迭代器標識了乙個區間,現在你希望在容器中查詢一些資訊,這樣的查詢工作如何進行呢?你的選擇往往是 count,count if,find,find if,binary search,lower bound,upper bound,equal range.該如何選擇呢?現...
C STL 常用排序演算法
以下是排序和通用演算法 提供元素排序策略 merge 合併兩個有序序列,存放到另乙個序列。例如 vecinta,vecintb,vecintc是用vector宣告的容器,vecinta已包含1,3,5,7,9元素,vecintb已包含2,4,6,8元素 vecintc.resize 9 擴大容量 m...
C STL常用演算法總結
演算法 問題的求解步驟,以有限的步驟,解決數學或邏輯中的問題。accumulate 元素統計 template t accumulate inputiterator first,inputiterator last,t init template t accumulate inputiterator...