一、容器
1.顺序容器
<forward_list> :单向链表:
<set>: 关键字即值,即只保存关键字的容器
<unordered_set>: 用哈希函数组织的set

二、输入输出流

<iostream>: cin\cout\cerr\clog;

clog对应于标准错误输出流,用于向屏幕输出错误信息,不能被重定向。

cerr和clog的区别在于:cerr不适用缓冲区,直接向显示器输出信息;而输出到clog中的信息会先被存放到缓冲区,缓冲区满或者刷新时才输出到屏幕。
三、原子和线程(不常用,用到再补充)
<thread>
三、其他(只列了一些常用的)
intmyints[] = { 10, 20, 30, 40 };int* p;
p = std::find (myints, myints+4, 30);if(p != myints+4)
std::cout <<"Element found in myints: "<< *p <<'\n';elsestd::cout <<"Element not found in myints\n";// using std::find with vector and iterator:std::vector<int> myvector (myints,myints+4);
std::vector<int>::iterator it;
it = find (myvector.begin(), myvector.end(), 30);if(it != myvector.end())
boolIsOdd (inti) {return((i%2)==1);
}intmain () {
  std::vector<int> myvector;

  myvector.push_back(10);
  myvector.push_back(25);
  myvector.push_back(40);
  myvector.push_back(55);

  std::vector<int>::iterator it = std::find_if (myvector.begin(), myvector.end(), IsOdd);
  std::cout <<"The first odd value is "<< *it <<'\n';return0;
}
intmyints[] = {10,20,30,30,20,10,10,20};// 8 elementsintmycount = std::count (myints, myints+8, 10);
std::cout <<"10 appears "<< mycount <<" times.\n";// counting elements in container:std::vector<int> myvector (myints, myints+8);
mycount = std::count (myvector.begin(), myvector.end(), 20);
std::cout <<"20 appears "<< mycount  <<" times.\n";
intmyints[] = {20,40,60,80,100};//   myints: 20 40 60 80 100std::vector<int>myvector (myints,myints+5);// myvector: 20 40 60 80 100// using default comparison:if( std::equal (myvector.begin(), myvector.end(), myints) )
std::cout <<"The contents of both sequences are equal.\n";elsestd::cout <<"The contents of both sequences differ.\n";

myvector[3]=81;// myvector: 20 40 60 81 100// using predicate comparison:if( std::equal (myvector.begin(), myvector.end(), myints, mypredicate) )
std::cout <<"The contents of both sequences are equal.\n";elsestd::cout <<"The contents of both sequences differ.\n";
boolmypredicate (inti,intj) {return(i==j);
}intmain () {
  std::vector<int> haystack;// set some values:        haystack: 10 20 30 40 50 60 70 80 90for(inti=1; i<10; i++) haystack.push_back(i*10);// using default comparison:intneedle1[] = {40,50,60,70};
  std::vector<int>::iterator it;
  it = std::search (haystack.begin(), haystack.end(), needle1, needle1+4);if(it!=haystack.end())
    std::cout <<"needle1 found at position "<< (it-haystack.begin()) <<'\n';elsestd::cout <<"needle1 not found\n";// using predicate comparison:intneedle2[] = {20,30,50};
  it = std::search (haystack.begin(), haystack.end(), needle2, needle2+3, mypredicate);if(it!=haystack.end())
    std::cout <<"needle2 found at position "<< (it-haystack.begin()) <<'\n';elsestd::cout <<"needle2 not found\n";return0;
}
bool myfunction (inti,intj) {return(i<j); }
struct myclass {booloperator() (inti,intj) {return(i<j);}
} myobject;
int main () {intmyints[] = {32,71,12,45,26,80,53,33};
std::vector<int> myvector (myints, myints+8);
std::sort (myvector.begin(), myvector.begin()+4);
std::sort (myvector.begin()+4, myvector.end(), myfunction);
std::sort (myvector.begin(), myvector.end(), myobject);
std::cout <<"min(1,2)=="<< std::min(1,2) <<'\n';
std::cout <<"min(2,1)=="<< std::min(2,1) <<'\n';
std::cout <<"min('a','z')=="<< std::min('a','z') <<'\n';
std::cout <<"min(3.14,2.72)=="<< std::min(3.14,2.72) <<'\n';
#include <iostream> #include <vector>
int main () {intfoo[] = {10,20,30,40,50};
std::vector<int> bar;
for(autoit = std::begin(foo); it!=std::end(foo); ++it)
    bar.push_back(*it);
std::cout <<"bar contains:";
for(autoit = std::begin(bar); it!=std::end(bar); ++it)  std::cout <<' '<< *it;
std::cout <<'\n';
return 0;
#include <string> #include <iostream> #include <iterator>  #include <map>  using namespace std; int main()  {map<int, string> map1 = {{ 7,"a1" }, { 8, "a2" }, {9,"a3" }}; for (auto it = map1.begin(); it != map1.end(); it++){ if (prev(it) == map1.begin()) cout << "第二个元素 " << map1[it->first] << endl; // a2  if (next(it) == map1.end()) cout << "最后一个元素 " << map1[it->first] << endl; // a3 }
}
structMyClass {
  intdata[100];
  MyClass() {std::cout <<"constructed ["<<this<<"]\n";}
};
int main () {
  std::cout <<"1: ";
  MyClass * p1 =newMyClass;
  std::cout <<"2: ";
  MyClass * p2 =new(std::nothrow) MyClass;
  std::cout <<"3: ";
  new(p2) MyClass;
  std::cout <<"4: ";
  MyClass * p3 = (MyClass*) ::operatornew(sizeof(MyClass));
  deletep1;deletep2;deletep3;
  return0;
}