std::forward_list<T,Allocator>::emplace_after
Min standard notice:
Inserts a new element into a position after the specified position in the container. The element is constructed in-place, i.e. no copy or move operations are performed. The constructor of the element is called with exactly the same arguments, as supplied to the function.
# Declarations
template< class... Args >
iterator emplace_after( const_iterator pos, Args&&... args );
(since C++11)
# Parameters
pos: iterator after which the new element will be constructedargs: arguments to forward to the constructor of the element
# Return value
Iterator to the new element.
# Example
#include <forward_list>
#include <iostream>
#include <string>
struct Sum
{
std::string remark;
int sum;
Sum(std::string remark, int sum)
: remark{std::move(remark)}, sum{sum} {}
void print() const
{
std::cout << remark << " = " << sum << '\n';
}
};
int main()
{
std::forward_list<Sum> list;
auto iter = list.before_begin();
std::string str{"1"};
for (int i{1}, sum{1}; i != 10; sum += i)
{
iter = list.emplace_after(iter, str, sum);
++i;
str += " + " + std::to_string(i);
}
for (const Sum& s : list)
s.print();
}