Skip to content

layout: post title: "stl" subtitle: "stl" date: 2019-06-10 20:30:33 author: "none" header-img: "img/posts/default_post.jpg" catalog: true tags: - tag


vector

push_back 和 emplace_back

emplace_back会原地对参数进行构造, push_back要么会拷贝参数,要么会构造后需要移动操作

clear

clear 后vector的size=0, 但capacity不变

如何改变vector的capacity

vector<T>().swap(var)
var.shrink_to_fit()

文件读写

不要使用eof进行判断,会导致循环多一次

#include <string>
#include <fstream>

int main() {
    std::ifstream in_file("doc_id.txt");
    if(!in_file.is_open()) return -1;

    std::string line;
    //while(!in_file.eof()) {
    while(in_file >> line) {
        std::getline(in_file, line);
    }
}