บทนำ
งานนี้แสดงการทำงานของ deque::assign() ใน C++ STL
Deque (Double Ended Queue) ใน C++ deque::assign() เป็นฟังก์ชันในตัว (Inbuilt) ใช้กำหนดค่าใหม่ให้ Deque Container ทุกครั้งที่เรียก จะแทนที่ค่าเดิมและปรับขนาดตามนั้น
Syntax
dequename.assign(<int> size, <int> val)
Parameters
2 พารามิเตอร์:
- Size - ขนาดของ Deque Container
- Val - ค่าที่ Deque จะเก็บ
หรือใช้ Iterator ระบุช่วงเริ่มต้น-สิ้นสุดแทนได้
Return Value
ไม่คืนค่า
ตัวอย่าง
Input: dq.assign(5, 1)
Output: deque elements are: 1 1 1 1 1
Input: dq.assign(5, 2); dq1.assign(dq.begin()+2, dq.end())
Output: deque elements are: 2 2 2 2 2
deque1 elements are: 2 2 2
dq มี 5 ตัวค่า 2, dq1 ข้าม 2 ตัวแรก เริ่มจากตัวที่ 3 → ได้ 3 ตัวค่า 2
ตัวอย่าง: ใช้ Size และ Value
#include <bits/stdc++.h>
using namespace std;
int main() {
deque<int> deq;
deq.assign(5, 1); // size=5, value=1
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
ตัวอย่าง: ใช้ Iterators
#include <bits/stdc++.h>
using namespace std;
int main() {
deque<int> deq;
deq.assign(5, 2);
cout << "deque elements are: ";
for (auto it = deq.begin(); it != deq.end(); it++)
cout << *it << " ";
deque<int> deq1;
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
คำอธิบายเพิ่มเติม
assign() จะล้างข้อมูลเดิมทั้งหมดและแทนที่ด้วยข้อมูลใหม่ เวอร์ชัน Iterator Range คัดลอกจาก [first, last) ไม่รวม last