STL容器
vector
vector< int > vec
的push_backvec.push_back( things )
操作是按值/对象拷贝,而非按址拷贝。Object things; vector< Object > vec; vec.push_back( things ); // vec中的things 是 外面things的拷贝,两者不是同一个东西!
set/unordered_set中的集合操作在
<algorithm>
里可以找到:std::includes、std::set_difference、std::set_intersection、std::set_union、std::set_symmetric_difference
但在使用这些集合操作时,要先排序集合里的元素,要不然会报错
Expression: Sequence not ordered
,所以先用<algorithm>
里的sort
:std::sort(set.begin(), set.end());
- 容器类的操作可以到 ClassFoo-C++参考手册-容器库 找;当然,微软官方的文档也很好。
- 遇到一些问题,可以在 微软官方社区 或 stack overflow 上寻找答案。但注意stack overflow上的答案有可能不适用最新的语法,所以首选还是微软官方的最新文档。
字符串
字符串分割,使用:
char *strtok_s( char *strToken, const char *strDelimit, char **context )
strToken
字符串包含一个标记或一个以上的标记。
strDelimit
分隔符的设置。
context
用于存储调用 strtok_s 之间位置信息实例:
string value = "13|12|23|32"; char* next_value = NULL; char* token = strtok_s( const_cast<char*>(value.c_str()), "|", &next_value); while( token != NULL ){ designated.insert( stoi(token) ); token = strtok_s( NULL, "|", &next_value); }
2.未完。