C++的一些小记录

STL容器

  1. vector vector< int > vec的push_backvec.push_back( things )操作是按值/对象拷贝,而非按址拷贝。

    Object things;
    vector< Object > vec;
    vec.push_back( things ); // vec中的things 是 外面things的拷贝,两者不是同一个东西!
  2. set/unordered_set中的集合操作在里可以找到:

    std::includes、std::set_difference、std::set_intersection、std::set_union、std::set_symmetric_difference

    但在使用这些集合操作时,要先排序集合里的元素,要不然会报错Expression: Sequence not ordered,所以先用里的sort

    std::sort(set.begin(), set.end());

  3. 容器类的操作可以到 ClassFoo-C++参考手册-容器库 找;当然,微软官方的文档也很好。
  4. 遇到一些问题,可以在 微软官方社区 或 stack overflow 上寻找答案。但注意stack overflow上的答案有可能不适用最新的语法,所以首选还是微软官方的最新文档。

字符串

  1. 字符串分割,使用:

    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.未完。

你可能感兴趣的:(小技巧)