- 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