c++中的stl
  • String
  • Vector
  • Set
  • List
  • Map

 

1.string

  

1 char* s1 = "Hello SYSU!"; //创建指针指向字符串常量,这段字符串我们是不能修改的 //想要创建 可以修改的字符串,我们可以使用数组分配空间 
2 char s2[20] = "Hello SYSU!"; //或者这样 char s3[] = "Hello SYSU!"; 
3 //当然我们也可以动态分配内存 
4 char* s4 = (char*)malloc(20); gets(s4);

 

c++中,我们可以使用string

初始化

1 string s1;
2 string s2 = s1;
3 string s2(s1);
4 string s3 = “hello world”;
5 string s3(“hello world”);
6 string s4(9,’a’);
7 string s4 = string(6,’c’);

操作

 1 os<<s;
 2 is>>s;
 3 getline(is,s)
 4 s.empty();
 5 s.size();
 6 s[n];
 7 s1 + s2
 8 s1 = s2
 9 s1 == s2;
10 s1 != s2;
11 <,<=,>,>=
12 
13 Hello world
14 Cin>>s1>>s2;
15 
16 String s1;
17 Getline(cin,s1);

当把string对象和字符面值及字符串面值混在一条语句中使用时,必须确保+的两侧的运算对象至少有一个是string

 

迭代器访问元素

*iter

Iter-mem

++ iter

--iter

Iter1 == iter2

Iter1 != iter2

可以认为迭代器就是指针

 

Find(s1,pos)

String::npos

Erase();

 

2.Vector

初始化

1 Vector<T> v1
2 Vector<T> v2(v1)
3 Vector<T> v2 = v1;
4 Vector<T> v3(n,val);
5 Vector<T> v4(n);
6 Vector<T> v5{a,b,c,d,e,f};
7 Vector<T> v5 = {a,b,c,d,e,f};

操作

 1 V.empty()
 2 v.size();
 3 v.push_back(t);
 4 v.pop_back();
 5 v.erase(pos);
 6 v.clear();
 7 v.insert(pos,num,content);
 8 v[n];
 9 v1 = v2;
10 v1 = {a,b,c};
11 v1 == v2;
12 v1 != v2;
13 <,<=,>,>=
14 
15 
16 for (vector<string>::reverse_iterator iter = v6.rbegin(); iter != v6.rend(); iter++) { cout << *iter << endl; }

 

3.set

4.list双链表

forward_list单链表

5.map

 

posted on 2017-08-27 17:37  Stephenatalie  阅读(212)  评论(0编辑  收藏  举报