C++数组赋值提示应使用“{...}”初始化聚合对象

数组赋值应使用“{...}”初始化聚合对象的提示

C++原生数组声明之后,要对其进行初始化赋值,如果是将已经存在的一个数组变量直接通过赋值运算符“=”赋值给该数组的话,比如下方的这个代码,那么集成开发环境IDE,比如VSCode,或编译器,便可能在该赋值运算符右值变量部分的代码arr下面画上红色波浪线,并提示:应使用“{...}”初始化聚合对象。这是为什么呢?

int newArr[5] = arr

可能的原因

通常情况下,C++的数组的变量名称标识符是指向该数组中第一个元素内存地址的指针,而非整个数组。因此,集成开发环境IDE或编译器便可能提示使用{}来初始化聚合对象。

解决方法

如果要将C++的数组值赋值给另一个数组,则可以通过C++标准库中的std::copy()函数来完成(当然,也可以使用for循环来逐个索引赋值),该函数的语法如下:

std::copy(source.begin(), source.end(), destination.begin());

提示:该语法中的各个参数在将来讲到C++标准库的时候再详细介绍,现在对于该函数的用法,可以参考下方的实例代码。

#include <iostream>
using namespace std;


int main(){
    int arr[3] = {1,2,3};
    int newArr[3];
    std::copy(std::begin(arr), std::end(arr),newArr);
    for(int i=0; i<3; i++){
        cout << newArr[i] << std::endl;
    }

    return 0;

}

免责声明:内容仅供参考。


全栈后端 / C++教程 :
















Copyright © 2022-2024 笨鸟工具 x1y1z1.com All Rights Reserved.