将赋值运算符与make_pair方法一起使用会生成 CLion 警告

Using an assignment operator with make_pair method generates a CLion warning

本文关键字:警告 CLion 一起 赋值运算符 make 方法 pair      更新时间:2023-10-16

在我的程序中,有一个对数组,声明如下:

pair <string, int> mostOftenPairs[10];

例如,当我想初始化它时:

for (short i = 0; i < 10; ++i)
mostOftenPairs[i] = make_pair(std::string(), 0);

CLion 在发生赋值的行下划线,当我将鼠标悬停在它上面时,我收到此错误:

'pair::operator=(type)' is deleted

但是,该程序运行没有任何问题,但我的问题是是否有任何方法用于将值分配给对而不是"="?是否可以在同一行中初始化对数组?我的意思是类似于这个:

pair <string, int> mostOftenPairs[10] = make_pair(std::string(), 0);

是否可以在同一行中初始化对数组?我的意思是类似于这个:

要默认初始化它们,您无需执行任何操作,如构造函数的文档中所述std::pair

1( 默认构造函数。值初始化对的两个元素,第一个和第二个。

(强调是我的(所以std::pair的默认构造函数已经初始化(空字符串和 0 表示 int(,如果你不需要默认值,请使用std::vector

std::vector<std::pair<std::string,int>> mostOftenPairs( 10, std::make_pair( std::string(), 1 ) );