กำหนดให้แสดงการทำงานของ 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