将元素插入字符串集 c++ 的向量中

Insert element into vector of string sets c++

本文关键字:向量 c++ 元素 插入 字符串      更新时间:2023-10-16

如何将元素插入集合向量。Set是我不能使用索引的结构,或者begin()end()。我只能使用insert()erase()方法。这在内存中的结构是怎样的? 这部分代码不起作用,它显示了错误timovi[i].insert('A'),也是我尝试将这些元素打印到的timovi.insert('A');。我还包括了setsvectors和程序中使用的所有内容。

为了解释,
timovi表示团队,br_timova是团队的数量,vel_timset中的元素数量。

std::vector<std::set<std::string>> timovi;
for(int i (0); i < br_timova ; i++){
timovi.push_back(std::set<std::string>());
for(int j (0); j < vel_tim ; j++ ){
timovi[i].insert( 'A' );
}
}

for(int i (0); i < timovi.size();i++){
for(auto x : timovi[i]) std::cout<<x<<" ";
std::cout<<std::endl;
}

此代码

timovi[i].insert('A')

有一个可以简化为的问题:

std::set<std::string> s;
s.insert( 'A' );

问题是在这种情况下std::set::insert()期望std::string,但您提供了单字符'A'并且没有从charstd::string的隐式转换。您可以从单个字符创建字符串:

s.insert( std::string( 1, 'A' ) ); // one char

或者简单地使用字符串文字:

s.insert( "A" ); // note double quotes

或者也许你认为有std::set<char>