std::forward_list
是支持从容器中的任何位置快速插入和移除元素的容器。不支持快速随机访问。它实现为单链表,且实质上与其在C中实现相比无任何开销。与,std::list相比,此容器在不需要双向迭代时提供更有效地利用空间的存储。
一,元素访问
1.front 访问第一个元素;
二,迭代器
1.before_begin/cbefore_begin 返回指向第一个元素之前迭代器
2.begin/cbegin 返回指向起始的迭代器
3.end/cend 返回指向未尾的迭代器
1 forward_list<char> letters{ 'o', 'm', 'g', 'w', 't', 'f' }; 2 3 if (!letters.empty()) { 4 cout << "The first character is: " << letters.front() << ' '; 5 } 6 7 8 forward_list<int> nums{ 1, 2, 4, 8, 16 }; 9 forward_list<std::string> fruits{ "orange", "apple", "raspberry" }; 10 forward_list<char> empty; 11 12 // 求和 forward_list nums 中的所有整数(若存在),仅打印结果。 13 cout << "Sum of nums: " << 14 accumulate(nums.begin(), nums.end(), 0) << " "; 15 16 // 打印 forward_list fruits 中的首个 fruis ,不检查是否有一个。 17 cout << "First fruit: " << *fruits.begin() << " "; 18 19 if (empty.begin() == empty.end()) 20 cout << "forward_list 'empty' is indeed empty. ";
三,容量
1.empty 检查容器是否为空
2.max_size 返回可容纳的最大元素数
四,修改器
1.clear 清除内容
2.insert_after 在某个元素后插入新元素
1 template<typename T> 2 std::ostream& operator<<(std::ostream& s, const std::forward_list<T>& v) 3 { 4 s.put('['); 5 char comma[3] = { '