C/C++操作符重载、string vector map

来源:互联网 发布:多益网络行政面试 编辑:程序博客网 时间:2024/06/06 11:48

1、操作符重载:

     class object{

     public:

              int value;

              void operator=(int v){   //重载等号 =

                  this->value = v;

             }

            void operator[](int index) {   //如果时数据可以用index类似与数组用下标表示

                        return this->value;

            }


    }


2、std名字空间

       1、c++的标准模板类库   Standard Template Library 的缩写

       2、标准的c++的库函数都是在std名字空间

      3、如果你不想写std::你可以加 using namespace std;

3、std::string

    1> c++字符串对象, #include <string>   不加h时c++的类库

   st::string str;

   str = "helloworld";  //string类重载了 = ,会在堆上分配内存,把数据复制到在堆上开辟的内存空间

    char* ptr = "helloworld";

   str = ptr;  ///str对象会在堆上分配一块内存,保存刚才的字符串,

//返回str的c类型的字符串

 str.c_str();

str.length() // 返回字符串长度

std::string s_str =  str.substr(0,5);//  取从0开始的 5个字符/   s_str = "hello"

int index = str.find("world")    //返回子字符串在字符串的位置。 如果没有找到返回-1

str = "" 或者   str.clear()   //  都时赋值为“” 

3、std::vector   动态数组

    #include<vector>

    定义一个vector       std::vector<int> v;

     v.push_back(5);   //增加元素到尾部

    v.pop_back();    //删除最后一个元素 ,不返回值

    []操作符访问每一个元素   v[0] 

     迭代器(类似于指针)   std::vector<int>::iterator  it;

     it = v.begin();

     while(it < v.end()){

        printf("%d\n",*it);   //可以遍历每一个元素

    }


v.earse(v.begin())   // 删除掉迭代器的位置的元素    。v.earse(v.begin()+1);    参数时 迭代器  不是下标

v.insert(v.begin(),5)   // 把5插入到动态数组的参数一迭代器的位置

v.clear();   // 清空动态数组



4、std::map  key-->value

   #include<map>

   1、std::map 是key,value的映射表,能实现快速的查找

    2、std::map定义:  std::map<key的类型,value的类型> m;

     std::map<int,int>   m ;

    m[0] = 0;   m[1] = 1;  

     std::map<string,int>  m ;

     m["a"]  = 1;   m["b"]  = 2;

     m.earse(0)  //删除指定key的元素

 

 

   

 




    

原创粉丝点击