int nums = 0; for (; Vertices[nums]!= FVector(0.0f, 0.0f, 0.0f);nums++) { }优化这段代码
时间: 2024-03-21 17:43:11 浏览: 15
可以使用C++11中的范围for循环来优化这段代码,如下所示:
```c++
for (const auto& vertex : Vertices) {
if (vertex == FVector(0.0f, 0.0f, 0.0f)) {
break;
}
// 这里可以使用vertex进行一些操作
}
```
这里使用了范围for循环,其语法为 `for (const auto& element : container)`,其中`element`为容器`container`中的每个元素,使用`const auto&`可以自动推导出元素类型,并且使用引用避免了不必要的复制。当遍历到值为`(0.0f, 0.0f, 0.0f)`的元素时,可以使用`break`语句退出循环。
相关问题
优化以下代码 char* p = str; int numCount = 0; while (*p != '\0') { if (*p == ',' || *p == '.') { numCount++; } p++; } numCount++; // 数字个数等于分隔符个数加1 *len = numCount; int* nums = (int*)malloc(sizeof(int) * numCount); char *x = strtok(str,",."); int i = 0; while (x!= NULL) { nums[i++] = atoi(x); x = strtok(NULL, ",."); } return nums; }
char* p = str;
int numCount = 1; // 初始化为1,因为最后一个数字后面没有分隔符
while (*p != '\0') {
if (*p == ',' || *p == '.') {
numCount++;
}
p++;
}
*len = numCount;
int* nums = (int*)malloc(sizeof(int) * numCount);
char *x = strtok(str, ",.");
int i = 0;
while (x != NULL) {
nums[i++] = atoi(x);
x = strtok(NULL, ",.");
}
return nums;
```
主要的优化有两点:
1. 在计算数字个数时,初始化为1,因为最后一个数字后面没有分隔符。
2. 在使用 `strtok` 函数时,将分隔符字符串改为 ",.",这样就不需要在循环中判断分隔符是 "," 还是 "." 了。
int index = 1; for (int i = 1; i < numsSize; ++i) { if (nums[i] != nums[i - 1]) { nums[index++] = nums[i]; }这段C语言我看不懂,给我讲讲 为什么是删除后的,不应该是==吗,为什么要是!=
这段 C 语言代码中,并没有删除任何元素,只是将值相同的元素保留了一个,因为在去重的时候,只需要保留一个即可。代码中的 if 语句判断当前元素与前一个元素是否相同,如果不同,就将当前元素的值赋给新的下标为 index 的位置,index 在代码中表示去重后的新数组的大小。代码中是使用 != 而不是 == 的原因是要找到不同的元素进行去重。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)