Zhao70's Blog

STLPart1

stringstream及其用法

包含在头文件 sstream 中

  1. 声明stringstream

    1
    stringstream ss;
  2. 给stringstream对象赋值

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    //可以在定义时赋值
    string s;
    cin >> s;
    stirngstream ss(s);
    //利用stringstream::str()进行赋值
    stringstream ss;
    ss.str("hello stringstream");
    //利用流
    string s;
    stringstream ss;
    cin >> s;
    ss << s;
  3. stringstream的清空

    1
    2
    3
    stringstream ss;
    ss.str("");//right
    ss.clear; //error

std::lower_bound()和std::lower_bound()

ForwardIter lower_bound(ForwardIter first, ForwardIter last,const _Tp& val)算法返回一个非递减序列[first, last)中的第一个大于等于值val的位置。
ForwardIter upper_bound(ForwardIter first, ForwardIter last, const _Tp& val)算法返回一个非递减序列[first, last)中第一个大于val的位置。

1 2 2 3 4 4 4 5 6 7 9 9 10  
first       lower_bound(first, last, 4)       upper_bound(first, last, 4)         last
1
2
//查找相应的值的位置
int loc = lower_bound(first, last, 4) - first;

不定长数组: vector()

若a是一个vector,可以用a.size( )读取它的大小,a.resize( )改变大小,a.push_back( )向尾部添加元素,a.pop_back( )删除最后一个元素

set()用法