| κ΅¬λΆ | μΈν°νμ΄μ€ | μ€λͺ |
|---|---|---|
| μμ±μ | list() | λΉ λ¦¬μ€νΈ μμ± |
list(size_type n) | nκ°μ κΈ°λ³Έκ° μμ μμ± | |
list(size_type n, const T& val) | nκ°μ valλ‘ μ΄κΈ°ν | |
list(const list& other) | λ³΅μ¬ μμ±μ | |
list(list&& other) | μ΄λ μμ±μ (C++11) | |
list(initializer_list<T>) | {}λ‘ μ΄κΈ°ν | |
template<class InputIt> list(InputIt first, InputIt last) | λ°λ³΅μ κ΅¬κ° λ³΅μ¬ |
| λ©€λ² ν¨μ | μΈν°νμ΄μ€ | μ€λͺ |
|---|---|---|
| Capacity | empty() | λΉμ΄ μλμ§ νμΈ |
size() | μμ κ°μ λ°ν | |
resize(n) | ν¬κΈ° μ‘°μ | |
max_size() | κ°λ₯ν μ΅λ ν¬κΈ° λ°ν | |
| Element Access | front() / back() | μ/λ€ μμ λ°ν |
| Modifiers | assign(...) | κ° λλ λ²μλ‘ κ΅μ²΄ |
push_front(val) / push_back(val) | μ/λ€ μ½μ | |
pop_front() / pop_back() | μ/λ€ μ κ±° | |
insert(pos, val) | pos μμΉμ μ½μ
| |
erase(pos) / erase(first, last) | μμ μ κ±° | |
clear() | λͺ¨λ μ κ±° | |
swap(other) | λ€λ₯Έ listμ κ΅ν | |
emplace(...) / emplace_front() / emplace_back() | μ§μ μμ± μ½μ | |
remove(val) / remove_if(pred) | 쑰건μ λ°λΌ μ κ±° | |
unique() | μ€λ³΅ μ°μ μμ μ κ±° | |
merge(list& other) | μ λ ¬λ 리μ€νΈ λ³ν© | |
reverse() | μμ λ€μ§κΈ° | |
sort() | μ λ ¬ | |
| Iterators | begin() / end() | μλ°©ν₯ λ°λ³΅μ |
rbegin() / rend() | μλ°©ν₯ λ°λ³΅μ | |
cbegin() / cend() | const λ°λ³΅μ | |
crbegin() / crend() | const μλ°λ³΅μ |
| μ°μ°μ | μΈν°νμ΄μ€ | μ€λͺ |
|---|---|---|
| λΉκ΅ | ==, !=, <, <=, >, >= | 리μ€νΈ κ° λΉκ΅ |
| λμ | operator= | 리μ€νΈ λ³΅μ¬ λμ |
| μμ μ κ·Ό | front() / back() | μ/λ€ μμ νμΈ (μ§μ μ κ·Ό λΆκ°) |
| λ©€λ² νμ | μ μ | μ€λͺ |
|---|---|---|
value_type | T | μ μ₯ νμ |
reference / const_reference | T&, const T& | μ°Έμ‘° νμ |
pointer / const_pointer | T*, const T* | ν¬μΈν° νμ |
iterator / const_iterator | μλ°©ν₯ λ°λ³΅μ | μμ μνμ© |
reverse_iterator | μλ°©ν₯ λ°λ³΅μ | μμ μνμ© |
size_type | std::size_t | ν¬κΈ° νμ |
difference_type | std::ptrdiff_t | λ°λ³΅μ μ°¨μ΄ κ³μ° |
λ©λͺ¨λ¦¬ ꡬ쑰 : λ Έλ κΈ°λ° μ°κ²° ꡬ쑰
μμ μ κ·Ό : λΆκ°λ₯ (μΈλ±μ€ μ κ·Ό λΆκ°), at(), [ ] μ κ·Ό λΆκ°λ₯
μ λ ¬ : μ체 μ λ ¬ λ©μλ (sort())
λ°λ³΅μ : μλ°©ν₯ λ°λ³΅μ
리μ€νΈλ μΈλ±μ€ μ κ·Όμ΄ μλκΈ° λλ¬Έμ μμ μΆλ ₯ μ λ°λ³΅μ μ¬μ©

remove()ν΄λΉνλ μμλ λͺ¨λ μμ

remove_if()
|---
#include <iostream>
#include <list>
using namespace std;
// true / falseλ₯Ό λ°ννλ μ½λ°± ν¨μ
bool Predicate(int n)
{
return 10 <= n && n <= 30;
}
int main()
{
list <int> lst;
lst.push_back(10);
lst.push_back(20);
lst.push_back(30);
lst.push_back(40);
lst.push_back(50);
lst.push_back(10);
list <int> :: iterator iter;
for (iter = lst.begin(); iter != lst.end(); iter++)
{
cout << *iter << " ";
}
// 10 20 30 40 50 10
cout << endl << endl;
// remove_if() λ΄λΆμμ μλ : 리μ€νΈμ μμλ€μ ν¨μμ λ§€κ°λ³μλ‘ λκΉ
lst.remove_if(Predicate);
for (iter = lst.begin(); iter != lst.end(); iter++)
{
cout << *iter << " ";
}
// 40 50
}
리μ€νΈ μ μ© κΈ°λ₯μ΄κΈ° λλ¬Έμ λ°λμ κ°μ 리μ€νΈ νμ μ΄μ΄μΌ νλ€
νμ
1. li.splice(μ½μ
ν μμΉ, μ½μ
ν μμ);
①리μ€νΈ μ 체 μ΄λ
νμ
2. li.splice(μ½μ
ν μμΉ, μ½μ
ν μμ, μμμ μμΉ);
①리μ€νΈμμ μμ νλλ§ μ΄λ
νμ
3. li.splice(μ½μ
ν μμΉ, μ½μ
ν μμ, μμμ λ²μ ꡬκ°);
①리μ€νΈμμ νΉμ ꡬκ°μ μ΄λ
λ°λ³΅μ iterκ° κ°λ¦¬ν€κ³ μλ μμΉ [1]μ li2 μ 체λ₯Ό μ½μ
ν¨.
β‘ κΈ°μ‘΄μ li2λ λΉκ² λλ€.

|---
리μ€νΈ aμ 리μ€νΈ bμ μΌλΆ μμλ₯Ό μλΌλ΄κ³ λΆμΈλ€.

|---

β 리μ€νΈμμ μ€λ³΅λ μ°μ μμλ₯Ό μ κ±°ν μ μλ€.
β‘ μ°μλ(μΈμ ν) μ€λ³΅λ§ μ κ±°νλ€!!!
β‘ μλμ μ½λμμλ μΈμ νμ§ μμ μμ 20κ³Ό 30μ λ¨μμλ κ²μ νμΈν μ μλ€.

β λ§μ½ μΈμ νμ§ μμ μ€λ³΅ μμλ μ κ±°νκ³ μΆλ€λ©΄?
β‘ unique(쑰건ν¨μ); λ‘ μ‘°κ±΄μ΄ μ°ΈμΈ μμλ§ μ κ±°ν μ μλ€.
벑ν°μ λ±μ μμ μ κ·Όμ ν΅ν΄ sort()λ₯Ό μ¬μ©νμ¬ μ λ ¬ν μ μμ§λ§ , 리μ€νΈλ μμ μ κ·Όμ΄ λΆκ°λ₯νκΈ° λλ¬Έμ μ체 μ λ ¬ λ©€λ² ν¨μ sort()λ₯Ό μ¬μ©νμ¬ μ λ ¬νλ€.

μ λ ¬λ 리μ€νΈ μ μ©μ΄κΈ° λλ¬Έμ λ³ν©νλ €λ λ 리μ€νΈμ μ λ ¬ νμ
β‘ λ³ν©νλ €λ λ 리μ€νΈμ μ λ ¬μ΄ λ€λ₯΄λ€λ©΄ μ€λ₯
β κΈ°λ³Έμ μ€λ¦μ°¨μ μ λ ¬
β‘ λ 리μ€νΈ λͺ¨λ μ€λ¦μ°¨μμ΄μ΄μΌν¨

β λ§μ½ λ 리μ€νΈκ° λ΄λ¦Όμ°¨μ μ λ ¬μ΄λΌλ©΄?
λ΄λ¦Όμ°¨μ μ λ ¬μ greater<int> λΉκ΅ ν¨μ κ°μ²΄λ₯Ό μ¬μ©νλ€
