string 容器
字符串查找和替换
#include
using namespace std;
#include
//1.查找
void test01()
{
string str1 = "abcdefg";
int pos = str1.find("de");//寻找de
if (pos == -1)
{
cout<<"未找到字符串"<
字符串比较
#include
using namespace std;
#include
//
void test01()
{
string str1 = "hello";
string str2 = "hello";
if (str1.compare(str2) == 0)
{
cout<<"str1 等于 str2"< 0)
{
cout<<"str1 大于 str2"<
字符串存取
#include
using namespace std;
//存取
void test01()
{
string str = "hello";
//1.通过[]访问单个字符
for (int i = 0; i < str.size() ; i++)
{
cout<
字符串插入删除
#include
using namespace std;
#include
void test01()
{
string str = "hello";
str.insert(1,"111");
cout<
子串
简而言之就是字符串截取
#include
using namespace std;
#include
void test01()
{
string str = "abcdefg";
string subStr = str.substr(1, 3 );
cout<<"subStr = "<
vector容器
构造vector
单端数组,动态容器
构造vector
#include
using namespace std;
#include
void printVector(vector&v)
{
for(vector::iterator it = v.begin(); it != v.end(); it++) //迭代
{
cout<<*it<<" ";
}
}
//构造容器
void test01()
{
vectorv1;//默认构造
for (int i = 0; i < 10; i++)
{
v1.push_back(i); //将 i 传到vector里面
}
printVector(v1);
//通过区间进行构造
vectorv2(v1.begin() , v1.end());
printVector(v2);
//n个elem方式构造
vectorv3(10,100); //构造10个100
printVector(v3);
//拷贝构造
vectorv4(v3);
printVector(v4);
}
int main()
{
test01();
system('pause');
return 0;
}
vector赋值
#include
using namespace std;
#include
void printVector(vector&v)
{
for(vector::iterator it = v.begin(); it != v.end(); it++) //迭代
{
cout<<*it<<" ";
}
}
void test01()
{
vectorv1;
for (int i = 0 ; i <10 ; i++)
{
v1.push_back(i);
}
printVector(v1);
//等于赋值
vector v2;
v2 = v1;
printVector(v2);
//assign
vectorv3;
v3.assign(v1.begin() , v1.end());
printVector(v3);
vectorv4;
v4.assign(10,100);
printVector(v4);
}
int main() {
test01();
system('pause');
return 0;
}
vector插入删除
#include
using namespace std;
#include
void printVector(vector&v)
{
for(vector::iterator it = v.begin(); it != v.end(); it++) //迭代
{
cout<<*it<<" ";
}
}
//元素插入删除
void test01()
{
vector v1;
//赋值
v1.push_back(10);
v1.push_back(20);
v1.push_back(30);
v1.push_back(40);
v1.push_back(50);
//尾删
v1.pop_back();
printVector(v1);
//插入
v1.insert(v1 , begin() , 100);
printVector(v1);
v1.insert(v1 , begin() , 2 , 1000);
printVector(v1);
//删除
v1.erase(v1 , begin());
printVector(v1);
//清空
v1.erase(v1.begin(0 , v1end());
v1.clear();
printVector(v1);
int main()
{
test01();
system('pause');
return 0;
}
deque容器
双端数组
#include
using namespace std;
#include
void printVector(const deque& d)
{
for(deque::const_iterator it = d.begin(); it != d.end(); it++) //迭代
{
cout<<*it<<" ";
}
}
//构造容器
void test01()
{
dequed1;//默认构造
for (int i = 0; i < 10; i++)
{
d1.push_back(i); //将 i 传到vector里面
}
printDeque(d1);
//通过区间进行构造
dequed2(d1.begin() , d1.end());
printDeque(d2);
//n个elem方式构造
dequed3(10,100); //构造10个100
printVector(v3);
//拷贝构造
dequev4(v3);
printVector(v4);
}
int main()
{
test01();
system('pause');
return 0;
}
deque容器赋值
deque赋值方式和vector类似,这里不再赘述
deque容器插入删除
list容器
list容器构造
类似前两个容器
list容器赋值与交换
其中swap()函数是交换两个list的内容
L1.swap(L2);
list容器插入与删除
list容器反转与排序
L1.reverse();
L1.sort();
即可反转和排序了
set容器
#include
using namespace std;
#include
void printSet(set&s)
{
for (set::iterator it = s.begin(); it != s.end(); it++)
{
cout<<*it<<" ";
}
cout<s1;
s1.insert(10);
s1.insert(20);
s1.insert(30);
//s1.insert(30);
s1.insert(40);
printSet(s1);
//拷贝构造
sets2(s1);
printSet(s2);
//赋值
sets3;
s3 = s2;
printSet(s3);
}
int main()
{
test01();
system('pause');
return 0;
}
set容器的特点是没有重复值
set容器插入与删除
set容器查找与统计
map容器
map容器构造
所有的元素都是pair的
#include
using namespace std;
#include