กำหนดให้แสดงการทำงานของ deque::assign() ใน C++ STL
Deque เป็นคิวสองปลาย ใน C ++ deque::assign() เป็นฟังก์ชัน inbuilt ซึ่งใช้เพื่อกำหนดค่าใหม่ให้กับคอนเทนเนอร์ deque ทุกครั้งที่เรียกใช้ฟังก์ชันนี้จะกำหนดค่าใหม่ให้กับคอนเทนเนอร์ deque โดยแทนที่ค่าที่มีอยู่และเปลี่ยนขนาดที่จัดสรรตามนั้น
ไวยากรณ์
ไวยากรณ์ของ deque::assign() มีดังต่อไปนี้ −
dequename.assign(<int> size, <int> val)
พารามิเตอร์
ฟังก์ชันนี้มี 2 พารามิเตอร์ -
อันดับแรกคือ ขนาด ซึ่งแสดงถึงขนาดของคอนเทนเนอร์ deque และอันที่สองคือ val ซึ่งเป็นค่าที่อยู่ในคอนเทนเนอร์ deque
นอกจากนี้ แทนที่จะ ขนาด และ val เราสามารถกำหนดให้ iterator เป็นพารามิเตอร์เพื่อประกาศจุดเริ่มต้นและจุดสิ้นสุด การแสดงภาพของทั้งคู่เป็นตัวอย่าง
คืนค่า
ฟังก์ชันนี้ไม่มีค่าส่งคืน
ตัวอย่าง
Input: dq.assign(5, 1) Output: deque elements are: 1 1 1 1 1 Input: dq.assign(5, 2) dq1.assign(dq.start()+2, dq.end()) Output: deque elements are: 2 2 2 2 2 deque elements are: 2 2 2
คำอธิบาย − deque dq มี 5 องค์ประกอบ 2 2 2 2 2 ในขณะที่ dq1 เราจะข้าม 2 องค์ประกอบตั้งแต่เริ่มต้นและเริ่มจากองค์ประกอบที่สามของ dq ดังนั้น dq1 มี 2 2 2
ด้วยขนาดและความคุ้มค่า
ตัวอย่าง
#include <bits/stdc++.h> using namespace std; int main() { deque<int> deq; // assign 5 values of 1 each deq.assign(5, 1); //here, 5 is the size and 1 is the value cout << "deque elements are: "; for (auto it = deq.begin(); it != deq.end(); it++) cout << *it << " "; return 0; }
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
deque elements are: 1 1 1 1 1
ด้วยการวนซ้ำ
ตัวอย่าง
#include <bits/stdc++.h> using namespace std; int main() { deque<int> deq; // assign 5 values of 2 each deq.assign(5, 2); cout << "deque elements are: "; for (auto it = deq.begin(); it != deq.end(); it++) cout << *it << " "; deque<int> deq1; // assigns all elements from // the second position to deque1 deq1.assign(deq.begin() + 2, deq.end()); cout << "\ndeque1 elements are: "; for (auto it = deq1.begin(); it != deq1.end(); it++) cout << *it << " "; return 0; }
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
deque elements are: 2 2 2 2 2 deque1 elements are: 2 2 2