Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何初始化std::map<;int,int>;密钥递增但值相同?_C++ - Fatal编程技术网

C++ 如何初始化std::map<;int,int>;密钥递增但值相同?

C++ 如何初始化std::map<;int,int>;密钥递增但值相同?,c++,C++,如何初始化映射,使键为0到10,但每个值都设置为某个int,比如100 m[0] = 100; m[1] = 100; m[2] = 100; ... 听起来你真的想要一个向量,你可以初始化为一个默认值,比如 std::向量m(10100); 如果你真的想使用一个映射,那么你可以使用你的旧for循环,比如 std::map m; for(int i=0;istd::map不提供这种方法,但是如果您经常这样做,需要一种快速方法,那么一个带有(for)循环的简单模板函数就足够了: #includ

如何初始化映射,使键为0到10,但每个值都设置为某个int,比如100

m[0] = 100;
m[1] = 100;
m[2] = 100;
...

听起来你真的想要一个向量,你可以初始化为一个默认值,比如

std::向量m(10100);
如果你真的想使用一个映射,那么你可以使用你的旧for循环,比如

std::map m;

for(int i=0;i
std::map
不提供这种方法,但是如果您经常这样做,需要一种快速方法,那么一个带有(for)循环的简单模板函数就足够了:

#include <iostream>
#include <map>


template <class T, class Y>
std::map<T, Y> get_map(T size, Y val)
{
  std::map<T, Y> m;
  for (T i = 0; i != size; ++i)
    m[i] = val;
  return m;
}

int main()
{
  auto m = get_map(10, 100);

  for (const auto& e : m)
    std::cout << e.first << " - " << e.second << '\n';
  std::cout << std::flush;
  return 0;
}

使用循环?地图真的是这里的最佳选择吗?
std::vector
不是更有意义吗(除非你以后打算打洞)写一个循环。一个花园的循环。一个简单的<代码> < /COD>循环。不能得到任何更简单的。我想,可以,创造性地使用<代码> STD::生成< /代码>,如果一个目标是炫耀自己的专业C++知识,但是那将真的没有什么用处。<代码>:ST::向量M(10, 100)
当您的键连续且从零开始时,为什么要使用
std::map
呢?伙计们,我们不知道初始化后如何使用此map。
0 - 100
1 - 100
2 - 100
3 - 100
4 - 100
5 - 100
6 - 100
7 - 100
8 - 100
9 - 100