标签:
C++中有三大重要的标准库,为string、vector、bitset,他们每个都是一个类,对应的命名空间均为std。string类的对象可以存 储一个字符串,相应于C中存储字符串的方式,C++的优点是,在创建对象时可以不指定长度,在连接和删除中,只需要使用进行算符重载后了的“+”和 “-”。vector类的对象可以存储一个数组,可以int,char,string等,使用时,就像一个栈一样,通过push_back、 pop_back等进行操作,这是与一般数组不一样的地方。
String 类
1 string + “ ” ok
2 string + string ok
3 “ ” + string ok
string s1 = "test";
string s2 = s1 + "orange" + "apple";
string s3 = "orange" + s2 + "banana";
string s4 = s3 + "a"
包括,顺序容器,关联容器,迭代器,算法等。其中,vector和list属于顺序容器,map、list、multimap、multiset属于关联容器。
一个key值对应多个value,用法与map类似
它是c++11boost库中的一个类模板,类似于hash表,用法类似于map
3vector 中 若规定大小,则和数组一样,用数组操作,用push-back()不能正确放入a[i] = “ “;
若没有规定大小,则可用push放入,操作也可采用数组
例:#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main(){
vector<string> words;
words.push_back("zero");
words.push_back("one");
cout<<words[0]<<endl;
int x;
cin>>x;
// cout<<words.size()<<endl;
switch (x){
case 0:cout<<words[0]<<endl;
break;
case 1:
cout<<words[1]<<endl;
break;
case 2:
cout<<words[2]<<endl;
break;
default:
break;
}
}
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main(){
vector<string> words(9);
words[0] = "zero";
words[1] = "one";
cout<<words[0]<<endl;
int x;
cin>>x;
switch (x){
case 0:cout<<words[0]<<endl;
break;
case 1:
cout<<words[1]<<endl;
break;
case 2:
cout<<words[2]<<endl;
break;
default:
break;
}
}
stl 之map
1map的添加和查询
#include <iostream>
#include <map>
#include <string>
using namespace std;
int main(){
map<string,int> m1;
m1["beijing"] = 100;
m1["shenzhen"] = 200;
m1["shanghai"] = 300;
cout<<m1["shanghai"]<<endl;
map<string,int>::iterator it = m1.begin();
while(it != m1.end()){ //这样比较
cout<<it->first<<" "<<it->second<<endl;
it++;
}
return 0;
}
2每当用下标去访问map元素的时候,如果该元素不存在,那么首先在map中新生成一个键值对。所以用下标访问不存在的键值对,会增加容器的大小,map 中键的顺序一般是按照字母顺序排序的。
#include <iostream>
#include <map>
#include <string>
using namespace std;
void print(const map<string,int>::value_type &p) {
cout<<p.first<<" "<<p.second<<endl;
}
int main(){
map<string,int> word_count;
string word;
while(cin>>word){
if(word != "abc"){
word_count[word]++;
}
else
break;
}
map<string,int>::iterator it = word_count.begin(); //常用遍历map的方式
while(it != word_count.end()){
cout<<it->first<<" "<<it->second<<endl;
it++;
}
return 0;
}
word_count.insert(map<string,int>::value_type("abc",10)); //map中插入语句
map<string,int>::iterator it1 = word_count.find("abc");//map中的查找语句
word_count.erase("abc"); //删除语句
Set 和map类似,不能插入两个一样的值
标签:
原文地址:http://www.cnblogs.com/jerrmylei/p/4454344.html