c++ - How to store a list of strings -
i want store list of strings generate. don't know amount of strings , don't want store them if there identical string in list. want able count amount of strings in list.
thanks!
use std::set
container automatically keeps elements sorted , allows distinct elements (no duplicates), e.g.:
std::set<std::string> s; s.emplace("arthur"); s.emplace("barry"); s.emplace("barry"); s.emplace("barry"); s.emplace("charlie"); std::cout << std::size(s) << std::endl; // outputs '3'.
if need fast access , seldomly update container might use std::vector
, remove duplicates after every insertion.
std::vector<std::string> v; v.emplace_back("arthur"); v.emplace_back("barry"); v.emplace_back("barry"); v.emplace_back("barry"); v.emplace_back("charlie"); std::sort(std::begin(v), std::end(v)); // sort needed 'std::unique' work. v.erase(std::unique(std::begin(v), std::end(v)), std::end(v)); // remove duplicates. std::cout << std::size(v) << std::endl; // outputs '3'.
std::vector
not keep elements sorted though.
Comments
Post a Comment