C++ 容器

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

void printMap(map&m)
{
    for (map::iterator it = m.begin(); it != m.end(); it++)
   {
     cout<<"key = "<<(*it).first<<"value = "<second<m;
    m.insert(pair(1,10));
    m.insert(pair(2,20));
    m.insert(pair(3,30));
    m.insert(pair(4,40));

   printMap(m);

     //拷贝构造
     mapm2(m);
     printMap(m);

     //赋值
     mapm3;
     m3 = m2;
     printMap(m3);
}

int main()
{
     test01();
     system('pause');
     return 0;
}

map容器插入和删除

map容器查找和统计

你可能感兴趣的:(C++ 容器)