Tag: 数组

在复制控制函数中如何处理C ++数组成员?

这是我想了很久的事情。 以下面的例子: struct matrix { float data[16]; }; 我知道默认的构造函数和析构函数在这个具体的例子中是什么(没有),但是复制构造函数和复制赋值运算符呢? struct matrix { float data[16]; // automatically generated copy constructor matrix(const matrix& that) : // What happens here? { // (or here?) } // automatically generated copy assignment operator matrix& operator=(const matrix& that) { // What happens here? return *this; } }; 它涉及std::copy或std::uninitialized_copy或memcpy或memmove或什么?

初始化一个int数组

有没有人有一种方法来初始化一个int数组(任何多字节types是否真的很好),到一个非零和非-1值? 我的意思是,有没有办法在一个class轮中做到这一点,而不必单独做每个元素: int arr[30] = {1, 1, 1, 1, …}; // that works, but takes too long to type int arr[30] = {1}; // nope, that gives 1, 0, 0, 0, … int arr[30]; memset(arr, 1, sizeof(arr)); // That doesn't work correctly for arrays with multi-byte // types such as int 只是供参考,以这种方式在静态数组上使用memset()给出: arr[0] = 0x01010101 […]

a,&a,* a,a ,&a 和&a 是否相同的指针?

我有以下的C程序: #include <stdio.h> int main(){ int a[2][2] = {1, 2, 3, 4}; printf("a:%p, &a:%p, *a:%p \n", a, &a, *a); printf("a[0]:%p, &a[0]:%p \n", a[0], &a[0]); printf("&a[0][0]:%p \n", &a[0][0]); return 0; } 它给出了以下输出: a:0028FEAC, &a:0028FEAC, *a:0028FEAC a[0]:0028FEAC, &a[0]:0028FEAC &a[0][0]:0028FEAC 我无法理解为什么&a , a , *a都完全相同。 对于a[0] , &a[0]和&a[0][0] 。 编辑: 多亏了答案,我明白了为什么这些价值观是平等的。 Kernighan&Ritchie的书中的这一行certificate是我的问题的关键: the name of an array is […]

数组中的二进制search

我将如何实现一个二进制search只使用一个数组?

为什么我有问题分配一个范围到一个variables数组

我有一些非常简单的代码行几个问题。 让我详细说明事实,看看是否有其他人可以复制这种行为。 如果任何人可以复制,我想解释为什么发生。 所以,让我从一个非常简单的代码行开始工作: Dim arr() As Variant arr = Range("A1:A10") 如预期的那样, arr被赋予A1:A10的值A1:A10 现在为什么不会有以下代码行? Dim arr() As Variant arr = WorkSheets("Sheet1").Range("A1:A10") 我得到了运行时错误'13'types不匹配,即使相同的范围已成功地分配给数组,即使没有工作表值。 但 Dim arr As Variant arr = Worksheets("Sheet1").Range("A1:A10") 和 Dim arr() As Variant arr = Application.Transpose(Application.Transpose(Worksheets("Sheet1").Range("A1:A10"))) 能工作吗? 现在,在你回答之前,请让我给你更多的事实。 Dim arr() As Variant arr = Worksheets(1).Range("A1:A10") 不起作用 并使用Sheets代替Worksheets也都给出了相同的错误。 我已经通过使用Range("A1:A10").Worksheet.Name确保它与活动引用表单相同Range("A1:A10").Worksheet.Name在工作代码之后,它确实在输出中表示Sheet1 。 没有其他工作簿是开放的,所以它不能引用另一个工作簿。 现在,这最后一点的代码只会增加我的困惑,因为它完全有效! Dim arr() […]

使用零长度的数组

例如,我们可以像这样构造这样一个数组: new ElementType[0]; 我看到了这样的结构,但我不明白为什么这可能是有用的。

处理ArrayStoreException

Object[] o = "a;b;c".split(";"); o[0] = 42; 投 java.lang.ArrayStoreException: java.lang.Integer 而 String[] s = "a;b;c".split(";"); Object[] o = new Object[s.length]; for (int i = 0; i < s.length; i++) { o[i] = s[i]; } o[0] = 42; 没有。 有没有其他的方式来处理这个exception,而不创build一个临时的String[]数组?

为什么数组types对象是不可修改的?

这里说明了这一点 术语可修改的左值用于强调左值允许指定的对象被改变以及被检查。 以下对象types是左值,但不能修改左值: 一个数组types 一个不完整的types 一个const限定的types 一个结构或联合types的一个成员资格为consttypes 因为这些左值是不可修改的,所以它们不能出现在赋值语句的左边。 为什么数组types对象是不可修改的? 写这个不正确吗? int i = 5, a[10] = {0}; a[i] = 1; ? 而且,什么是不完整的types?

将一个int存储在char数组中?

我想在一个char数组中存储一个4字节的int …这样char数组的前4个位置就是int的4个字节。 然后,我想把int从数组中拉出来… 此外,如果有人可以给我这样的代码在一个循环中,奖励积分… IE写入像8个字节到一个32字节的数组。 int har = 0x01010101; char a[4]; int har2; // write har into char such that: // a[0] == 0x01, a[1] == 0x01, a[2] == 0x01, a[3] == 0x01 etc….. // then, pull the bytes out of the array such that: // har2 == har 多谢你们! 编辑:假设int是4个字节… 编辑2:请不要在意endianness …我会担心endianness。 我只是想用不同的方法在C / […]

使用PHP过滤类似于SQL LIKE'%search%'的数组中的值

我使用JQueryUI创build了一个自动填充字段,并将数据存储在一个文档中。 我可以读取数组中的值…但我希望能够返回基于用户input的字母匹配。 所以如果数组包含[orange,blue,green,red,pink,brown,black]和用户typesBL,然后我只返回[blue,black] 。 看array_diff()但没有完整的匹配整个值的数组,我不知道如何使用它…也许是一个正则expression式抛出? 我的两个最弱的技巧数组操作和正则expression式感谢您的帮助!