&传引用
字符串:(类比OC中NSString)
string就是一个字符数组
#include<string>
string a;
a.push_back('m');
a.pop_back();
a.size();
a.length();
a[1]='x';
if(a.find('x') != string::npos) {//字符串a中找到x
}
for(int i = 0; i < a.length(); i++) {
cout<<a[i]<<endl;
//或者赋值操作 a[i] = 'a';
}
数组:(类比OC中NSArray)
#include<vector>
vector<int> a(5);
vector<int> b(100, 1);//b长度为100,默认值为1
for(int i = 0; i < a.size(); i++) {
cout<<a[i]<<endl;
}
a.size();
常量数组用大括号,如 vector<int> a = {1, 2, 3, 4, 5};
多个数组拼接:
例:
Vector<int> AB = {1};
Vector <int> A = {2, 3};
Vector <int> B = {4, 5};
AB.insert( AB.end(), A.begin(), A.end() );
AB.insert( AB.end(), B.begin(), B.end() );
字典:(类比OC中NSDictionary)
#include<map>
map<char, int> a;
a['m'] = 1;
a.find('x') == a.end();
map<int, bool> visited;
迭代器:
map<char, int> b;
map<char, int>::iterator ite;
for(ite=b.begin(); ite != b.end(); ite++) {
cout<<ite.first<<endl;
cout<<ite.second<<endl;
}
集合:
#include<set>
set<char> a;
a.insert('x')
a.erase('x');
if(a.find('x') != a.end()){
...
}
栈:
#include<stack>
stack<int> a;
a.push(1);
a.pop();
a.top();//栈顶元素
a.empty();
队列:
#include<queue>
queue<int> a;
a.push(1);
a.pop();
a.peek();//队列头元素