zoukankan      html  css  js  c++  java
  • c++编程

    how to return a data type?

    一个头文件a.h,它的实现文件b.cpp;main.cpp包含头文件a.h。b.cpp,main.cpp中都#include "a.h"

    自定义头文件用“”,系统库文件用<>.顺序:最特殊的优先。

    类定义

    class Sales {

    public:

      Sales();

      Sales(const std::string&);

      Sales(std::istream&);

    private:

    //

    }

    创建对象:根据实参决定使用哪个构造函数

    Sales sale();

    Sales   sale2("sssss");

    Sales sale3(cin);

    容器:同一种对象的集合。有顺序容器和关联容器

    顺序容器:通过元素在容器中的位置顺序存储和访问元素,如vector<string>

    关联容器:按键(key)排序map<>,set<>.

    map元素以<key-value>对的形式组织。key是索引,value是存储和读取的数据。若一个键要对应多个实例,则用multimsp或multiset.

    map<k,v>::key_type    //map容器中,用作所引的键的类型

    map<k,v>::mapped_type  // 键所关联的值的类型

    map<k,v>::value_type  //一个pair类型,其first元素是map<k,v>::key_type类型,last元素是map<k,v>::mapped_type。

    每个容器类型都定义一个名为irerator 的成员,用于访问容器内的成员。

    每个容器都定义一对begin()和end()函数,用来返回迭代器,begin()指向第一个元素,end()指向“末端容器的下一个”,它返回的迭代器叫“超出末端迭代器(off-the-end iter)”,指向不存在的元素,容器为空时,两者返回值一样。

    rbegin() 返回一个逆序迭代器,它指向容器c的最后一个元素。

    c.rend() 返回一个逆序迭代器,它指向容器c的第一个元素前面的位置。

    map<k,v>::iterator i1=world_count.begin();  //map<const string,int> world_count

    i1->first="new key";  ++i1->second;

    迭代器用解引用(*)操作符表示迭代器指向的元素内容:*i1=“new2” .

    http://www.cppblog.com/totti1006/archive/2009/09/01/94955.html(vector容器和iterator)

     关于“->”:被称为结构指针运算符,   “.”被称为结构运算符。

    例子:

    struct  Vertex{

      string a;

      int b;

      char name[10];

    };

    Vertex   v1;

    Vertex *v2=(Vertex*) malloc(sizeof(Vertex)) ;

    v1.a="ss";//结构体变量直接访问

    v2->b=1;  //是指针变量,

    (*v2).b=1; //指针结构体变量访问

    数据类型对于运行时间的重要性:

    我想创建一个有向图,存储结构式是十字交叉表。点保存在数组中,数组元素的类型是一个struct vertex。

    图中的insertedge()等成员函数的形参是int行。即每个点在数组的下标。所以我在插入一个边前,要先遍历数组找到下标。这样的时间损耗特别长。遍历所有点的次数与边的个数成正比。即O(ve)。  

    解决方法。使用关联容器map  

    map<string,int>  把点的内容与下标关联起来。每次直接通过键值(这里即点的内容)直接查找到下标。每次插入边不需要遍历图。

  • 相关阅读:
    nginx的一些
    索引
    liunx 里面安装phpstudy环境s
    Linux操作系统定时任务系统 Cron 入门
    Memcached的安装
    模拟php curl向远程服务器上传文件
    file_get_contens POST传值
    ab测试
    ASP.Net Core 3.1 发布错误 Error NU1605 解决方案
    Taker短信转发到HTTP POST接口的配置
  • 原文地址:https://www.cnblogs.com/xaf-dfg/p/3144766.html
Copyright © 2011-2022 走看看