我想知道是否有一种简单的方法可以在一行代码中设置多个数组元素。例如,而不是:
int Array[10];
Array[4] = 100;
Array[7] = 100;
有没有办法做类似下面的事情?
int Array[10];
Array[4 & 7] = 100;
我知道上面的代码不起作用,但我真的想不出任何其他方式来显示我的问题。无论如何,提前感谢任何想分享他们意见的人:)
int array[10];
array[4] = array[7] = 100;
array[4] = 100, array[7] = 100;
4[array] = 7[array] = 100;
编辑:
您可能希望将循环用于元素的某种动态设置
int i, array[10], array_element[3] = { 3, 5, 6 };
for (i = 0; array_element[i] && array[array_element[i]]; i++) array[array_element[i]] = 100;
如果“最小”代码是指抽象,则另一种选择是定义一个函数
overlord::set(array, 100, "3, 5, 6");
overlord::set(array, 100, "{ 3, 5, 6 }");
overlord::set(array, "3: 200, 5: 400, 6: 500");
无论哪种方式,您都不会在 C++ 或 C 中找到“动态”语言功能。您必须对现有的基本功能进行抽象,才能获得那种愚蠢的动态类型。
你可以这样做
int Array[10];
Array[4] = Array[7] = 100;
如果您尝试设置一系列元素,则可以使用 for 循环
int array[10];
for(int i=0; i<10; i++) {
array[i] = 100;
}
您也可以使用此技巧仅对某些数字执行此操作
int nums[2] = { 4,7 }; //Positions you wish to set
for(int i=0; i<2; i++) {
array[nums[i]] = 100; //nums[0] = 4, array[4]
//nums[1] = 7, array[7]
}
你有这个完全可读的代码:
int Array[10];
Array[4] = 100;
Array[7] = 100;
并且您想“在一行代码中设置多个数组元素”。好的:
int Array[10];
Array[4] = 100; Array[7] = 100;
但你为什么要?是否有我没有听说过的换行符短缺?