ตัวอย่างที่ดีสำหรับ boost :: algorithm :: join


116

เมื่อเร็ว ๆ นี้ฉันต้องการใช้boost :: algorithm :: joinแต่ฉันไม่พบตัวอย่างการใช้งานใด ๆ และฉันไม่ต้องการเสียเวลามากมายในการเรียนรู้ไลบรารี Boost Range เพียงเพื่อใช้ฟังก์ชันนี้

ใครสามารถให้ตัวอย่างที่ดีในการใช้การเข้าร่วมในคอนเทนเนอร์ของสตริงได้หรือไม่? ขอบคุณ


30
เมื่อมองหาตัวอย่างสำหรับ boost library "foo" มักเป็นความคิดที่ดีที่จะดู boost / libs / foo / samples และ boost / libs / foo / test ในกรณีปัจจุบันคุณสามารถดูที่ boost / libs / algorithm / string / test / join_test.cpp
Éric Malenfant

คำตอบ:


224
#include <boost/algorithm/string/join.hpp>
#include <vector>
#include <iostream>

int main()
{
    std::vector<std::string> list;
    list.push_back("Hello");
    list.push_back("World!");

    std::string joined = boost::algorithm::join(list, ", ");
    std::cout << joined << std::endl;
}

เอาท์พุท:

Hello, World!

4
สามารถรองรับประเภทที่กำหนดเองได้หรือไม่? ตัวอย่างเช่นคลาสAมีเมธอดToStringที่คืนค่าstringฉันสามารถใช้joinเพื่อเข้าร่วมvector<A>โดยเรียกToStringแต่ละองค์ประกอบได้หรือไม่
Ken Zhang

43
std::vector<std::string> MyStrings;
MyStrings.push_back("Hello");
MyStrings.push_back("World");
std::string result = boost::algorithm::join(MyStrings, ",");

std::cout << result; // prints "Hello,World"

7
คำตอบนี้แสดงให้เห็นถึงความพยายามน้อยกว่าคำตอบที่เก่ากว่าและไม่มีมูลค่าเพิ่ม เหตุใดจึงยังคงปรากฏอยู่ที่นี่
arekolek
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.