* create
```
#include <forward_list>
using namespace std;
int main() {
forward_list<int> a; // default constructor
forward_list<int> b(a); // copy constructor
forward_list<int> c(move(a)); // move constructor
forward_list<int> d{1,2,3}; // initializer list constructor
forward_list<int> e(3,1); // fill constructor
forward_list<int> f(a.begin(),a.end()); // range constructor
forward_list<int>* g = new forward_list<int>{1,2,3}; // new operator
delete g;
}
```
* iterator
```
#include <iostream>
#include <forward_list>
using namespace std;
int main() {
forward_list<int>c{1,2,3,4,5,1};
for (auto i = c.begin(); i != c.end(); ++i)
cout << *i << " ";
cout<<endl;
for (auto i = c.cbegin(); i != c.cend(); ++i)
cout << *i << " ";
cout<<endl;
}
/*
1 2 3 4 5 1
1 2 3 4 5 1
*/
```
* add
```
#include <iostream>
#include <forward_list>
using namespace std;
int main ()
{
forward_list<int> fl;
fl.push_front(1);
fl.push_front(2);
auto it = fl.before_begin();
fl.insert_after(it, 3);
for (auto &i:fl)
cout<<i<<",";
cout<<endl;
}
```
* change
```
#include <iostream>
#include <forward_list>
using namespace std;
void p(forward_list<int>& a) {
for(auto &i:a) cout<<i<<";";
cout<<endl;
}
int main ()
{
forward_list<int> a{1,2,3,4,5};
forward_list<int> a1{1,2,3,4,5}, a2{1,2,3,4,5};
*a.begin()=2; //2;2;3;4;5;
a.front()=3; //3;2;3;4;5;
a.assign(3, 5); //5;5;5;
a.swap(a1); //a:1;2;3;4;5; a1:5;5;5;
a.splice_after(a.begin(), a2); //a:1;1;2;3;4;5;2;3;4;5; a2:null
a.reverse(); //5;4;3;2;5;4;3;2;1;1;
a.sort(); //1;1;2;2;3;3;4;4;5;5;
a1.sort(); //5;5;5;
a.merge(a1); //a:1;1;2;2;3;3;4;4;5;5;5;5;5; a1:null
a.unique(); //1;2;3;4;5;
p(a);
}
```
* query
```
#include <iostream>
#include <forward_list>
using namespace std;
int main() {
forward_list<int> a{};
a.assign(10, 1);
cout<<a.front()<<endl;
cout<<a.max_size()<<","<<a.empty()<<endl;
}
```
* delete
```
#include <iostream>
#include <forward_list>
using namespace std;
bool isOne (int& i) { return i==1; }
int main() {
forward_list<int> a{};
a.assign(10, 1);
a.pop_front();
a.erase_after(a.begin());
a.remove(1);
a.remove_if(isOne);
a.clear();
cout<<a.empty()<<endl;
}
```