Show Cùng tìm hiểu về kiểu set trong C++. Bạn sẽ biết khái niệm set trong c++ là gì, cách khai báo set trong C++, cách khởi tạo set trong C++, cách truy cập phần tử của set, cũng như sự khác biệt giữa list và set trong C++ sau bài học này. Set trong c++ là gìSet trong C++ là một tập hợp các phần tử duy nhất được sắp xếp theo thứ tự cụ thể, và được sử dụng làm tiêu chuẩn để xử lý các đối tượng chứa nhiều phần tử trong C++. Mỗi phần tử trong set có giá trị phải là duy nhất, có nghĩa là nó không được trùng lặp với các giá trị còn lại trong set. Ngoài ra thì phần tử trong set không thể thay đổi giá trị, tuy nhiên chúng có thể được chèn hoặc xóa khỏi set. Về mặt nội bộ, các phần tử trong set luôn được sắp xếp theo thứ tự cụ thể một cách nghiêm ngặt, được chỉ ra bởi đối tượng so sánh nội bộ của nó. Nếu bạn thêm các phần tử mới không theo thứ tự cụ thể vào một set, chúng sẽ tự động sắp xếp lại theo giá trị trước khi được lưu trữ nội bộ. Trong C++ cũng có một loại dữ liệu khá giống với set là multiset khi các phần tử trong chúng luôn được sắp xếp theo thứ tự. Tuy nhiên thì khác với multiset vốn cho phép các phần tử có thể trùng nhau cùng tồn tại, thì các phần tử trong set không được trùng nhau và luôn phải là duy nhất. Nói tóm lại thì set trong C+++ sẽ giống như một mảng với các phần tử không trùng lặp và luôn được sắp xếp. Về mặt tốc độ xử lý thì set có khả năng thêm, xóa, tìm kiếm dữ liệu với tốc độ cực cao là Do đó, trong trường hợp chúng ta không hay thêm xóa tìm kiếm phần tử thì việc dùng vector sẽ có lợi hơn, do tốc độ cũng tương đương mà lại tiết kiệm bộ nhớ. Tuy nhiên trong các trường hợp không cần thiết việc truy cập ngẫu nhiên và hay thêm xóa tìm kiếm phần tử thì việc sử dụng set thay cho vector sẽ có lợi nhiều hơn.
Cấu trúc dữ liệu set trong c++Cấu trúc dữ liệu set trong C++ thuộc dạng Red–black tree (cây đỏ đen) - một cây nhị phân, là một cấu trúc dữ liệu trong khoa học máy tính để tổ chức các thành phần dữ liệu có thể so sánh. Cụ thể thì cấu trúc dữ liệu set trong C++ có được thể hiện như ví dụ dưới đây. Lưu ý là cấu trúc này có thể khác một chút so với thực tế cấu trúc trong môi trường máy của bạn. Chúng ta cần đặc biệt lưu ý 3 điểm sau đây về Cấu trúc dữ liệu set trong c++:
std::set trong C++std::set trong C++ là một thư viện chuẩn được sử dụng để xử lý set trong C++. std::set được cài sẵn trong header file set và để sử dụng được chức năng này, chúng ta cần thêm dòng #include <set> Lại nữa, namespace của std::set là std, do đó bằng cách khai báo sử dụng namespace này vào đầu chương trình mà chúng ta có thể viết gọn std::set trong chương trình như sau: #include <set> Khai báo set trong C++Khai báo 1 set trong C++Để khai báo set trong C++, chúng ta viết dòng std::set, sau đó viết kiểu dữ liệu giữa cặp dấu std::set Trong đó Chúng ta có thể dùng bất cứ kiểu dữ liệu nào có trong C++ để khai báo type, ví dụ như char, int, double, hay cấu trúc hoặc class tự tạo chẳng hạn. Lưu ý, mặc dù chúng ta có thể dùng bất cứ kiểu dữ liệu nào có trong C++ để khai báo type, tuy nhiên do trong set các phần tử cần phải được sắp xếp, nên kiểu của chúng cũng phải là kiểu dữ liệu có thể được so sánh. Đối với các kiểu dữ liệu nguyên thủy như char, int, double chẳng hạn thì chúng vốn có thể tự so sánh được, nhưng nếu chúng ta sử dụng các kiểu dữ liệu không phải là kiểu dữ liệu nguyên thủy, ví dụ như cấu trúc hoặc class tự tạo chẳng hạn, thì bắt buộc phải tự định nghĩa toán tử so sánh nội bộ operator<() để làm rõ quan hệ lớn nhỏ giữa chúng. Lại nữa, trong trường hợp đã khai báo namespace std vào đầu
chương trình, chúng ta cũng có thể lược bỏ dòng using namespace std; Thông thường chúng ta hay khai báo namespace std vào đầu chương trình để sử dụng tới các chức năng thông dụng khác như nhập xuất chẳng hạn, nên trong 2 phương pháp khai báo set ở trên thì phương pháp thứ 2 thường được sử dụng nhiều hơn. Lưu ý set được khai báo với cú pháp này sẽ có 0 phần tử bên trong nó. Sau khi khai báo set kiểu này, chúng ta có thể sử dụng các hàm thành viên để có thể thêm phần tử vào nó sau này. Ví dụ cụ thể, chúng ta khai báo 1 set thuộc kiểu dữ liệu nguyên thủy như sau: #include <iostream> Còn khi khai báo 1 set không thuộc kiểu dữ liệu nguyên thủy, ví dụ như struct chẳng hạn thì chúng ta phải tự tạo ra toán tử so sánh nội bộ operator<() để làm rõ quan hệ lớn nhỏ giữa các phần tử như ví dụ sau: struct Person { Khai báo đồng thời nhiều set trong C++Trong trường hợp cần khai báo đồng thời nhiều set trong C++, chúng ta viết các tên các biến cách nhau bởi dấu phẩy vào đằng sau using namespace std; Ví dụ cụ thể: #include <iostream> Khởi tạo set trong C++Ngoài cách khai báo rồi gán giá trị cho set sau đó thì chúng ta cũng có thể khởi tạo set và gán luôn giá trị ban đầu cho set. Chúng ta khởi tạo set trong C++ cách sử
dụng cặp dấu ngoặc std::set Trong đó
Ví dụ: std::set<string> user{"Kiyoshi", "male", "Tokyo"}; Khai báo set 2 chiều trong C++Giống như mảng thì chúng ta cũng có thể sử dụng set đa chiều trong C++, và loại set đa chiều hay được sử dụng đó chính là set 2 chiều trong C++. Để khai báo set 2 chiều trong C++ cũng như các loại set đa chiều khác, chúng ta sử dụng tới cú pháp sau đây: using namespace std; Trong đó:
Lưu ý, chúng ta cần phải viết thêm dấu cách giữa cặp dấu Ví dụ cụ thể: #include <iostream> Chúng ta cũng có thể khởi tạo các set 1 chiều trước rồi dùng chúng để khai báo set 2 chiều như sau: #include <iostream> Truy cập phần tử trong set C++Khác với vector hay mảng, do cấu trúc của set theo dạng cây chứ không phải dạng mảng nên chúng ta không thể truy cập ngẫu nhiên vào phần tử bất kỳ trong một set. Do vậy chúng ta cũng không thể sử dụng index của các phần tử để truy cập vào nó theo cách thông thường được. Ví dụ nếu dùng index để truy cập vào vị trí ngẫu nhiên trong set thì lỗi sẽ trả về như sau: set<string> user{"Kiyoshi", "male", "Tokyo"}; Thay vào đó, chúng ta cần phải tiến hành truy cập tuần tự vào các phần tử của set, thông qua vòng lặp hoặc là trình lặp mà Kiyoshi đã giới thiệu trong bài Duyệt set trong C++. Ví dụ, chúng ta có thể truy cập vào phần tử của set 1 chiều thông qua vòng lặp dựa trên phạm vi như sau: #include <iostream> Chúng ta cũng có thể truy cập và in ra toàn bộ các phần tử trong set 1 chiều như sau: #include <iostream> Kết quả: Kiyoshi Tương tự khi chúng ta cần truy cập vào phần tử trong set 2 chiều trong C++: #include <iostream> Và kết quả: Honda vector vs set trong C++Như đã phân tích ở trên thì giữa set và vector trong C++ có một số điểm khác biệt như sau:
Thông thường trong trường hợp chúng ta không hay thêm xóa tìm kiếm phần tử thì việc dùng vector sẽ có lợi hơn, do tốc độ cũng tương đương mà lại tiết kiệm bộ nhớ. Tuy nhiên trong các trường hợp không cần thiết việc truy cập ngẫu nhiên và hay thêm xóa tìm kiếm phần tử thì việc sử dụng set thay cho vector sẽ có lợi nhiều hơn. Tổng kếtTrên đây Kiyoshi đã hướng dẫn bạn về set trong C++ rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé. Và hãy cùng tìm hiểu những kiến thức sâu hơn về C++ trong các bài học tiếp theo. Viết bởi Kiyoshi. Đã đăng ký bản quyền tác giả tại <a title="Bạn được tự do chia sẻ bài viết nhưng phải để lại đường link bài viết từ laptrinhcanban.com. Bạn không được sử dụng tài liệu cho mục đích thương mại. Không được phép chỉnh sửa nội dung được phát hành trên website của chúng tôi" style="color:#450808;background-color:#d899f5" rel="license noopener" target="_blank" href="https://creativecommons.org/licenses/by-nc-nd/4.0/">Creativecommons</a>&nbsp;và <a title="Bạn được tự do chia sẻ bài viết nhưng phải để lại đường link bài viết từ laptrinhcanban.com. Bạn không được sử dụng tài liệu cho mục đích thương mại. Không được phép chỉnh sửa nội dung được phát hành trên website của chúng tôi" style="color:#450808;background-color:#d899f5" target="_blank" rel="noopener" href="https://www.dmca.com/Protection/Status.aspx?ID=1631afcd-7c4a-467d-8016-402c5073e5cd" class="dmca-badge">DMCA</a><script src="https://laptrinhcanban.com/ezossp/https/images.dmca.com/Badges/DMCABadgeHelper.min.js?screx=1&sxcb=2a" async type="text/ez-screx"></p><h3 style="font-size:15px">Bài viết liên quan</h3><ul class="popular-posts"><li class="popular-posts-item"><div class="popular-posts-title"><h3><a target="_blank" href="https://laptrinhcanban.com/cpp/lap-trinh-cpp-co-ban/set-trong-cpp/sao-chep-va-hoan-doi-set-trong-cpp/" title="Sao chép và hoán đổi set trong C++ (swap)" rel="bookmark">Sao chép và hoán đổi set trong C++ (swap)</a></h3></div></li><li class="popular-posts-item"><div class="popular-posts-title"><h3><a target="_blank" href="https://laptrinhcanban.com/cpp/lap-trinh-cpp-co-ban/set-trong-cpp/duyet-set-trong-cpp/" title="Duyệt set trong C++" rel="bookmark">Duyệt set trong C++</a></h3></div></li><li class="popular-posts-item"><div class="popular-posts-title"><h3><a target="_blank" href="https://laptrinhcanban.com/cpp/lap-trinh-cpp-co-ban/set-trong-cpp/lay-kich-thuoc-set-trong-cpp/" title="Lấy kích thước của set trong C++ (size)" rel="bookmark">Lấy kích thước của set trong C++ (size)</a></h3></div></li><li class="popular-posts-item"><div class="popular-posts-title"><h3><a target="_blank" href="https://laptrinhcanban.com/cpp/lap-trinh-cpp-co-ban/set-trong-cpp/tim-va-dem-phan-tu-trong-set-cpp/" title="Tìm phần tử trong set C++ (find, lower_bound, upper_bound, equal_range, cout)" rel="bookmark">Tìm phần tử trong set C++ (find, lower_bound, upper_bound, equal_range, cout)</a></h3></div></li><li class="popular-posts-item"><div class="popular-posts-title"><h3><a target="_blank" href="https://laptrinhcanban.com/cpp/lap-trinh-cpp-co-ban/set-trong-cpp/them-chen-set-trong-cpp/" title="Thêm chèn phần tử vào set trong C++" rel="bookmark">Thêm chèn phần tử vào set trong C++</a></h3></div></li><li class="popular-posts-item"><div class="popular-posts-title"><h3><a target="_blank" href="https://laptrinhcanban.com/cpp/lap-trinh-cpp-co-ban/set-trong-cpp/tinh-tong-cac-phan-tu-trong-set-cpp/" title="Tính tổng các phần tử trong set C++ (accumulate)" rel="bookmark">Tính tổng các phần tử trong set C++ (accumulate)</a></h3></div></li><li class="popular-posts-item"><div class="popular-posts-title"><h3><a target="_blank" href="https://laptrinhcanban.com/cpp/lap-trinh-cpp-co-ban/set-trong-cpp/xoa-phan-tu-trong-set-cpp/" title="Xóa phần tử trong set C++" rel="bookmark">Xóa phần tử trong set C++</a></h3></div></li><li class="popular-posts-item"><div class="popular-posts-title"><h3><a target="_blank" href="https://laptrinhcanban.com/cpp/lap-trinh-cpp-co-ban/set-trong-cpp/set-trong-trong-cpp/" title="set trống trong C++ (clear, empty)" rel="bookmark">set trống trong C++ (clear, empty)</a></h3></div></li></ul></div><div id="keugoi"><span>Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!</span></div><section class="icon-bar-2" style="border-bottom:dotted grey .3px!important"><a target="_blank" title="chia sẻ qua facebook" rel="noopener noreferrer" href="https://www.facebook.com/sharer/sharer.php?u=https://laptrinhcanban.com/cpp/lap-trinh-cpp-co-ban/set-trong-cpp/set-trong-cpp-la-gi/" class="facebook"><i class="fa fa-facebook"></i></a><a target="_blank" rel="noopener noreferrer" href="https://twitter.com/intent/tweet?url=https://laptrinhcanban.com/cpp/lap-trinh-cpp-co-ban/set-trong-cpp/set-trong-cpp-la-gi/" title="chia sẻ qua twitter" class="twitter"><i class="fa fa-twitter"></i></a><a target="_blank" rel="noopener noreferrer" href="https://getpocket.com/edit?url=https://laptrinhcanban.com/cpp/lap-trinh-cpp-co-ban/set-trong-cpp/set-trong-cpp-la-gi/" title="chia sẻ qua pocket" class="pocket"><i class="fa fa-get-pocket"></i></a><span class="zalo-share-button" title="chia sẻ qua zalo" style="margin-left:18px;margin-bottom:-3px" data-href="https://laptrinhcanban.com/cpp/lap-trinh-cpp-co-ban/set-trong-cpp/set-trong-cpp-la-gi/" data-oaid="579745863508352884" data-layout="3" data-color="blue" data-customize="false"></span></section><p class="ico-folder"><a target="_blank" href="https://laptrinhcanban.com/"><span itemprop="HOME">HOME</span></a><span class="sya"></span> <span class="sya"> ›</span> <a target="_blank" class="article-category-link" href="https://laptrinhcanban.com/cpp/lap-trinh-cpp-co-ban/">lập trình c++ cơ bản dành cho người mới học lập trình</a>>><a target="_blank" class="article-category-link" href="https://laptrinhcanban.com/cpp/lap-trinh-cpp-co-ban/set-trong-cpp/">22. set trong c++</a></p><nav id="article-nav"><a target="_blank" href="https://laptrinhcanban.com/cpp/lap-trinh-cpp-co-ban/deque-trong-cpp/deque-trong-trong-cpp/" id="article-nav-older" class="article-nav-link-wrap" style="float:left;text-align:right;padding-right:20px"><strong class="article-nav-caption">Bài sau</strong><div class="article-nav-title">Deque trống trong C++ (clear, empty, shrink_to_fit)</div></a><a target="_blank" href="https://laptrinhcanban.com/cpp/lap-trinh-cpp-co-ban/set-trong-cpp/tim-va-dem-phan-tu-trong-set-cpp/" id="article-nav-newer" class="article-nav-link-wrap" style="float:right;text-align:left;padding-left:20px"><strong class="article-nav-caption">Bài tiếp</strong><div class="article-nav-title">Tìm phần tử trong set C++ (find, lower_bound, upper_bound, equal_range, cout)</div></a><span id="ezoic-pub-ad-placeholder-611" class="ezoic-adpicker-ad"></span></nav><div id="recent_posts_down"><div class="widget_athemes_tabs"><ul id="widget-tab" class="clearfix widget-tab-nav"><li class="active">Bài viết mới nhất</li></ul><div class="widget"><ul><li class="clearfix"><div class="widget-entry-thumbnail"><a target="_blank" href="https://laptrinhcanban.com/php/nhap-mon-lap-trinh-php/chuoi-trong-php/tach-chuoi-trong-php/"><img width="60px" height="60px" loading="lazy" class="ezlazyload attachment-thumb-small size-thumb-small wp-post-image" aria-label="Tách chuỗi trong PHP (explode, preg_split)" ezimgfmt="rs rscb2 src ng ngcb2" data-ezsrc="/css/images/thumbnail_img/laptrinhcanban45.webp"></a></div><div class="widget-entry-summary"><span style="margin:0"><a target="_blank" href="https://laptrinhcanban.com/php/nhap-mon-lap-trinh-php/chuoi-trong-php/tach-chuoi-trong-php/">Tách chuỗi trong PHP (explode, preg_split)</a></span> <span>tháng 9 17, 2022</span></div></li><li class="clearfix"><div class="widget-entry-thumbnail"><a target="_blank" href="https://laptrinhcanban.com/php/nhap-mon-lap-trinh-php/chuoi-trong-php/cat-chuoi-trong-php/"><img width="60px" height="60px" loading="lazy" class="ezlazyload attachment-thumb-small size-thumb-small wp-post-image" aria-label="Cắt chuỗi trong PHP (substr, mb_substr)" ezimgfmt="rs rscb2 src ng ngcb2" data-ezsrc="/css/images/thumbnail_img/laptrinhcanban21.webp"></a></div><div class="widget-entry-summary"><span style="margin:0"><a target="_blank" href="https://laptrinhcanban.com/php/nhap-mon-lap-trinh-php/chuoi-trong-php/cat-chuoi-trong-php/">Cắt chuỗi trong PHP (substr, mb_substr)</a></span> <span>tháng 9 17, 2022</span></div></li><li class="clearfix"><div class="widget-entry-thumbnail"><a target="_blank" href="https://laptrinhcanban.com/php/nhap-mon-lap-trinh-php/chuoi-trong-php/tach-chuoi-thanh-mang-trong-php/"><img width="60px" height="60px" loading="lazy" class="ezlazyload attachment-thumb-small size-thumb-small wp-post-image" aria-label="Tách chuỗi thành mảng trong PHP (explode)" ezimgfmt="rs rscb2 src ng ngcb2" data-ezsrc="/css/images/thumbnail_img/laptrinhcanban57.webp"></a></div><div class="widget-entry-summary"><span style="margin:0"><a target="_blank" href="https://laptrinhcanban.com/php/nhap-mon-lap-trinh-php/chuoi-trong-php/tach-chuoi-thanh-mang-trong-php/">Tách chuỗi thành mảng trong PHP (explode)</a></span> <span>tháng 9 17, 2022</span></div></li><li class="clearfix"><div class="widget-entry-thumbnail"><a target="_blank" href="https://laptrinhcanban.com/php/nhap-mon-lap-trinh-php/chuoi-trong-php/tim-kiem-chuoi-trong-php/"><img width="60px" height="60px" loading="lazy" class="ezlazyload attachment-thumb-small size-thumb-small wp-post-image" aria-label="Tìm kiếm chuỗi trong PHP (strpos)" ezimgfmt="rs rscb2 src ng ngcb2" data-ezsrc="/css/images/thumbnail_img/laptrinhcanban43.webp"></a></div><div class="widget-entry-summary"><span style="margin:0"><a target="_blank" href="https://laptrinhcanban.com/php/nhap-mon-lap-trinh-php/chuoi-trong-php/tim-kiem-chuoi-trong-php/">Tìm kiếm chuỗi trong PHP (strpos)</a></span> <span>tháng 9 17, 2022</span></div></li><li class="clearfix"><div class="widget-entry-thumbnail"><a target="_blank" href="https://laptrinhcanban.com/php/nhap-mon-lap-trinh-php/chuoi-trong-php/dem-so-lan-xuat-hien-cua-ky-tu-trong-chuoi-php/"><img width="60px" height="60px" loading="lazy" class="ezlazyload attachment-thumb-small size-thumb-small wp-post-image" aria-label="Đếm số lần xuất hiện của ký tự và chuỗi trong chuỗi PHP (substr_count)" ezimgfmt="rs rscb2 src ng ngcb2" data-ezsrc="/css/images/thumbnail_img/laptrinhcanban52.webp"></a></div><div class="widget-entry-summary"><span style="margin:0"><a target="_blank" href="https://laptrinhcanban.com/php/nhap-mon-lap-trinh-php/chuoi-trong-php/dem-so-lan-xuat-hien-cua-ky-tu-trong-chuoi-php/">Đếm số lần xuất hiện của ký tự và chuỗi trong chuỗi PHP (substr_count)</a></span> <span>tháng 9 17, 2022</span></div></li><li class="clearfix"><div class="widget-entry-thumbnail"><a target="_blank" href="https://laptrinhcanban.com/php/nhap-mon-lap-trinh-php/chuoi-trong-php/tach-tung-ky-tu-trong-chuoi-php/"><img width="60px" height="60px" loading="lazy" class="ezlazyload attachment-thumb-small size-thumb-small wp-post-image" aria-label="Tách từng ký tự trong chuỗi PHP (substr, preg_split)" ezimgfmt="rs rscb2 src ng ngcb2" data-ezsrc="/css/images/thumbnail_img/laptrinhcanban47.webp"></a></div><div class="widget-entry-summary"><span style="margin:0"><a target="_blank" href="https://laptrinhcanban.com/php/nhap-mon-lap-trinh-php/chuoi-trong-php/tach-tung-ky-tu-trong-chuoi-php/">Tách từng ký tự trong chuỗi PHP (substr, preg_split)</a></span> <span>tháng 9 17, 2022</span></div></li><li class="clearfix"><div class="widget-entry-thumbnail"><a target="_blank" href="https://laptrinhcanban.com/php/nhap-mon-lap-trinh-php/chuoi-trong-php/chuyen-chuoi-thanh-mang-trong-php/"><img width="60px" height="60px" loading="lazy" class="ezlazyload attachment-thumb-small size-thumb-small wp-post-image" aria-label="Chuyển chuỗi thành mảng trong PHP (str_split, mb_str_split)" ezimgfmt="rs rscb2 src ng ngcb2" data-ezsrc="/css/images/thumbnail_img/laptrinhcanban17.webp"></a></div><div class="widget-entry-summary"><span style="margin:0"><a target="_blank" href="https://laptrinhcanban.com/php/nhap-mon-lap-trinh-php/chuoi-trong-php/chuyen-chuoi-thanh-mang-trong-php/">Chuyển chuỗi thành mảng trong PHP (str_split, mb_str_split)</a></span> <span>tháng 9 17, 2022</span></div></li><li class="clearfix"><div class="widget-entry-thumbnail"><a target="_blank" href="https://laptrinhcanban.com/php/nhap-mon-lap-trinh-php/chuoi-trong-php/xoa-ky-tu-trong-chuoi-php/"><img width="60px" height="60px" loading="lazy" class="ezlazyload attachment-thumb-small size-thumb-small wp-post-image" aria-label="Xóa ký tự trong chuỗi PHP" ezimgfmt="rs rscb2 src ng ngcb2" data-ezsrc="/css/images/thumbnail_img/laptrinhcanban15.webp"></a></div><div class="widget-entry-summary"><span style="margin:0"><a target="_blank" href="https://laptrinhcanban.com/php/nhap-mon-lap-trinh-php/chuoi-trong-php/xoa-ky-tu-trong-chuoi-php/">Xóa ký tự trong chuỗi PHP</a></span> <span>tháng 9 15, 2022</span></div></li></ul></div></div></div><footer class="entry-meta entry-footer"></footer><hr class="entry-footer-hr"></div><span class="ezoic-autoinsert-ad ezoic-longest_content"></span><div id="profiletitle2">Profile</div><div id="profileblock2"><div id="profilephoto2"><a target="_blank" rel="noopener" href="https://www.facebook.com/mr.nchita"><img width="100" height="100" alt="きよしです!笑" ezimgfmt="rs rscb2 src ng ngcb2" class="ezlazyload" data-ezsrc="/css/images/kiyoshi.webp"></a></div><div id="profiletext2"><p>Tác giả : <a href="https://www.facebook.com/mr.nchita" target="_blank" rel="nofollow noopener">Kiyoshi (Chis Thanh)</a></p><p>Kiyoshi là một <a href="https://www.youtube.com/c/ChisThanh" target="_blank" rel="nofollow noopener">cựu du học sinh tại Nhật Bản</a>. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.<span id="ezoic-pub-ad-placeholder-196" class="ezoic-adpicker-ad"></span></p></div></div></div></article><aside id="sidebar"><div id="sidebar_first"><span class="ezoic-autoinsert-ad ezoic-sidebar"></span><div class="search" style="margin-top:-30px"><div id="fb-root"></div><div class="fb-page" style="margin-left:30px" data-href="https://www.facebook.com/laptrinhkiyoshi" data-width="380" data-hide-cover="false" data-show-facepile="false"></div><script async src="https://laptrinhcanban.com/ezossp/https/cse.google.com/cse.js?cx=8a4ac28a22903209e&screx=1&sxcb=2a" type="text/ez-screx">
|