如何在C ++中将unordered_map作为函数参数传递?

时间:2018-02-25 04:32:32

标签: c++

我的程序最初设置为通过函数传递数组。我已经把它改成了unordered_map。如何通过函数传递unordered_map,而不是像:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
        <!-- Latest compiled and minified CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

    <!-- Optional theme -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">

    <link rel="stylesheet" href="css/style.css">
  </head>
  <body>

  <section>
    <div class="header">
    </div>
  </section>

  <section>
    <div class="col-sm-3 col-md-3 col-lg-3">
      <div class="side-menu">
          <ul class="menu-item">
            <li class="item"><a href="" class="active">Dashboard</a></li>
            <li class="item"><a href="">Insolvensy</a></li>
            <li class="item">
              <a href="">Compound</a>
              <ul class="child-menu">
                <li><a href="">Active Compound</a></li>
                <li><a href="">Active Compound</a></li>
              </ul>

            </li>
          </ul>
      </div>
    </div>
  </section>

  <section>
    <div class="col-sm-9 col-md-9 col-lg-9">
      sdsdsds
    </div>
  </section>

    <!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
  </body>
</html>

3 个答案:

答案 0 :(得分:1)

作为参考:

int function(unordered_map<K, T> &map)

答案 1 :(得分:1)

这样的事情:

int function(const std::unordered_map<int, int> &map)

除非您需要修改地图,否则您将不再使用const。

如果是我的程序,我可以输入地图:

typedef int result_t;
typedef std::unordered_map<int, result_t> memoization_table_t;

result_t function(memoization_table_t &map)

我刚刚搞砸了,因为我不知道你在做什么。 typedef使模板化容器更易于使用,并且它们使用描述性类型名称来记录代码。

答案 2 :(得分:1)

为什么你感到困惑?只需将int替换为unordered_map<int, int>

int foo(unordered_map<int, int> x)

如果您不需要修改它,您将需要使用const引用传递它。

int foo(const unordered_map<int, int> &x)

如果要修改用于调用函数的原始对象,请不要使用const。