C++ STL 中的前向列表assign() 函数
c++server side programmingprogramming
给出的任务是展示 C++ 中 forward_listassign() 函数的工作原理。
与保持与下一个元素以及前一个元素的链接的普通列表不同,forward_list 仅保持与下一个元素的链接,这有助于向前和向后迭代。但 forward_list 只能向前迭代。
forward_list::assign() 函数是 C++ 标准模板库的一部分。它用于在前向列表中插入元素,如果列表已经包含一些元素,则它们将被用户添加的新元素替换。
应包含<forward_list> 头文件以调用此函数。
语法
此函数有 3 种语法。每个方法对应不同的方法 −
- Forward_list_name.assign(initializer_list);
- Forward_list_name.assign(iterator itr1 , iterator itr2);
- Forward_list_name.assign(count, value);
参数
Initializer_list − 在第一种情况下,前向列表会获取以完全相同的顺序作为初始化列表传递给它的值。
Iterator − 在第二种情况下,前向列表会获取迭代器 itr1 和 itr2 指向的值之间的值。这还包括 itr1 指向的值,但不包括 itr2 指向的值。
count 和 value −在第三种情况下,参数"count"表示要插入到前向列表中的元素数量,"value"表示必须分配给每个元素的值。
position,表示必须放置新元素的位置,value,表示必须插入到列表中的元素。
返回值
该函数不返回任何值。
示例
输入:assign(5,1) 输出:1 1 1 1 1
解释 −
这里我们创建了一个 int 类型的前向列表 “Lt”。然后我们使用assign函数使用参数count和value将值assign()到列表中。
这为列表“Lt”分配了5个元素,每个元素的值都是1,从而生成输出1 1 1 1 1。
以下程序中使用的方法如下 −
- 首先创建三个 int 类型的前向列表,假设为“Lt1”、“Lt2”和"Lt3"。
- 然后使用assign()函数将元素分配给Lt1,并将初始化列表作为参数传递。
- 然后使用assign函数将元素分配给Lt2,并将count和value作为参数传递。
- 然后使用assign函数将元素分配给Lt3,并将两个迭代器作为参数传递,假设分别指向列表Lt1的初始位置和最终位置。
算法
Start Step 1->In function main() Declare forward_lists<int> Lt1,Lt2,Lt3 Call Lt1.assign(initialize list) Call Lt2.assign(count,value) Call Lt3.assign(L1.begin(),Lt2.end()) Stop
示例
#include <forward_list> #include <iostream> using namespace std; int main() { forward_list<int> Lt1; forward_list<int> Lt2; forward_list<int> Lt3; //将元素分配给 Lt1 Lt1.assign({4,9,7,8}); //将元素分配给 Lt2 Lt2.assign(3,6); //将元素分配给 Lt2 Lt3.assign(Lt1.begin(),Lt1.end()); // 显示列表 cout << "Lt1: "; for (int& D : Lt1) cout << D << &"; &";; cout << endl; // 显示 Lt2 cout << &"Lt2: &";; for (int& D : Lt2) cout << D << &"; &";; // 显示 Lt3 cout << "Lt3: "; for (int& D : Lt3) cout << D << " "; return 0; }
输出
如果我们运行上述代码,它将生成以下输出 −
Lt1: 4 9 7 8 Lt2: 6 6 6 Lt3: 4 9 7 8