Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

นับองค์ประกอบในเวกเตอร์ที่ตรงกับค่าเป้าหมายหรือเงื่อนไขใน C++


เราได้รับเวกเตอร์และภารกิจคือการคำนวณจำนวนองค์ประกอบเหล่านั้นในเวกเตอร์ที่ตรงกับค่าเป้าหมายหรือเงื่อนไข

เวกเตอร์คือคอนเทนเนอร์ลำดับที่สามารถเปลี่ยนขนาดได้ คอนเทนเนอร์เป็นวัตถุที่เก็บข้อมูลประเภทเดียวกัน คอนเทนเนอร์ลำดับเก็บองค์ประกอบอย่างเคร่งครัดในลำดับเชิงเส้น

เวกเตอร์จัดเก็บองค์ประกอบในตำแหน่งหน่วยความจำที่อยู่ติดกัน และช่วยให้สามารถเข้าถึงองค์ประกอบใดๆ ได้โดยตรงโดยใช้ตัวดำเนินการตัวห้อย [] ต่างจากอาร์เรย์ เวกเตอร์สามารถย่อหรือขยายได้ตามต้องการในขณะใช้งาน การจัดเก็บเวกเตอร์จะได้รับการจัดการโดยอัตโนมัติ

เพื่อรองรับฟังก์ชันการย่อและขยายขณะรันไทม์ คอนเทนเนอร์เวกเตอร์อาจจัดสรรพื้นที่จัดเก็บพิเศษบางส่วนเพื่อรองรับการเติบโตที่เป็นไปได้ ดังนั้น คอนเทนเนอร์จึงมีความจุจริงมากกว่าขนาด ดังนั้น เมื่อเทียบกับอาร์เรย์ เวกเตอร์จะใช้หน่วยความจำมากกว่าเพื่อแลกกับความสามารถในการจัดการพื้นที่จัดเก็บและขยายแบบไดนามิกอย่างมีประสิทธิภาพ

ตัวอย่าง

Input − vector vec = {1, 2, 3, 4, 4, 4, 4}
      Target = 4
Output − count is: 4

คำอธิบาย − ในเวกเตอร์ที่กำหนด เป้าหมายเกิดขึ้น 4 ครั้ง ดังนั้นการนับเป็น 4

Input − vector vec = {1, 2, 3}
      Target = 4
Output − count is: 0

คำอธิบาย − ในเวกเตอร์ที่กำหนด เป้าหมายเกิดขึ้น 0 ครั้ง ดังนั้นการนับเป็น 0

แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้

  • ป้อนเวกเตอร์และเก็บไว้ในตัวแปรประเภทเวกเตอร์ สมมุติว่า vec

  • ตั้งค่าเป้าหมายเป็นค่าจำนวนเต็ม

  • ใช้ตัวแปรชั่วคราวที่จะเก็บการนับ

  • เรียกใช้ฟังก์ชันการนับในตัวที่มีอยู่ใน C ++ STL และส่งผ่าน vec.begin(), vec.end() เป้าหมายไปที่การเรียกใช้ฟังก์ชัน

  • พิมพ์ผลลัพธ์

ตัวอย่าง

#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
int main(){
   vector<int> myvector{ 1, 2, 3, 4, 4, 4, 4, 4 };
   int target = 4;
   int res = count(myvector.begin(), myvector.end(), target);
   cout << "Target is: " << target << "\nCount is: " << res << endl;
   return 0;
}

ผลลัพธ์

หากเราเรียกใช้โค้ดข้างต้น เราจะได้ผลลัพธ์ดังต่อไปนี้ -

Target is: 4
Count is: 5