C++ 使用C+编程的常量数组+; const int new_WEIGHT[GENE]={temp_WEIGHT[0],temp_WEIGHT[1],temp_WEIGHT[2],temp_WEIGHT[3],temp_WEIGHT[4],temp_WEIGHT[5],temp_WEIGHT[6],temp_WEIGHT[7];

C++ 使用C+编程的常量数组+; const int new_WEIGHT[GENE]={temp_WEIGHT[0],temp_WEIGHT[1],temp_WEIGHT[2],temp_WEIGHT[3],temp_WEIGHT[4],temp_WEIGHT[5],temp_WEIGHT[6],temp_WEIGHT[7];,c++,C++,是否有其他方法,而不是复制所有数组索引?我是说,用另一种方法将数组复制到另一个常量数组?请帮忙 您可以复制std::array: const std::array temp_WEIGHT {1, 2, 3, 4, 5, 6, 7, 8}; const auto new_WEIGHT = temp_WEIGHT; 可以用c:/p(p)将C数组转换为(C++) 您可以使用访问基础阵列,并使用访问大小 #包括我理解这是定义明确且合法的 也就是说,我看不出今天有任何理由使用C数组。您可以复制一个std

是否有其他方法,而不是复制所有数组索引?我是说,用另一种方法将数组复制到另一个常量数组?请帮忙

您可以复制
std::array

const std::array temp_WEIGHT {1, 2, 3, 4, 5, 6, 7, 8};
const auto new_WEIGHT = temp_WEIGHT;
可以用c:/p(p)将C数组转换为(C++) 您可以使用访问基础阵列,并使用访问大小

#包括我理解这是定义明确且合法的


也就是说,我看不出今天有任何理由使用C数组。

您可以复制一个
std::array

const std::array temp_WEIGHT {1, 2, 3, 4, 5, 6, 7, 8};
const auto new_WEIGHT = temp_WEIGHT;
可以用c:/p(p)将C数组转换为(C++) 您可以使用访问基础阵列,并使用访问大小

#包括我理解这是定义明确且合法的


也就是说,我看不出今天有任何理由使用C数组。

使用
std::array
。它们允许您复制整个阵列。不太清楚您的意思。有参考资料吗?这里有文档和一些示例代码:我看不出太多关于同一数组的两个常量副本的观点,它们将以相同的开头,因为它们是常量,所以不能更改。不妨使用originalUse a
std::array
。它们允许您复制整个阵列。不太清楚您的意思。有参考资料吗?这里有文档和一些示例代码:我看不出太多关于同一数组的两个常量副本的观点,它们将以相同的开头,因为它们是常量,所以不能更改。还是用原版的好
#include <array>
#include <iostream>

void f(int arr[], std::size_t size) {
    for (std::size_t i = 0; i < size; ++i) {
        arr[i] *= 2;
    }
}

int main() {
    const int temp_WEIGHT[] = {1, 2, 3, 4, 5, 6, 7, 8};
    auto new_WEIGHT = std::to_array(temp_WEIGHT);
    f(new_WEIGHT.data(), new_WEIGHT.size());
    for (const auto &el : new_WEIGHT) {
        std::cout << el << ' ';
    }
}
#include <array>
#include <iostream>

template<std::size_t SIZE>
void f(int (&arr)[SIZE]) {
    for (auto &el : arr) {
        el *= 2;
    }
}

int main() {
    const int temp_WEIGHT[] = {1, 2, 3, 4, 5, 6, 7, 8};
    auto new_WEIGHT = std::to_array(temp_WEIGHT);
    f(*static_cast<int(*)[new_WEIGHT.size()]>(static_cast<void*>(new_WEIGHT.data())));
    for (const auto &el : new_WEIGHT) {
        std::cout << el << ' ';
    }
}