c++ quchong
时间: 2023-07-19 17:42:26 浏览: 95
如果您想从一个C++数组中去重,可以使用STL中的`std::set`。下面是一个示例代码:
```c++
#include <iostream>
#include <set>
int main() {
int nums[] = {1, 2, 3, 2, 1, 4, 5, 4};
std::set<int> unique_nums(nums, nums + 8);
for (auto num : unique_nums) {
std::cout << num << " ";
}
return 0;
}
```
输出结果为: `1 2 3 4 5`,即去重后的数组元素。
相关问题
function deepclone( source){ const k={}; k['text'] = source['name']; // topic.push(source['name']); t[source['name']]=[] k['children'] = source['children'].constructor=== Array ? [] : {}; source = quchong(source['children']); for (let i in source){ if (source[i]['children'].length>0 && typeof source[i]['children']==="object"){ t[k['text']][i] = source[i]['name']; k['children'][i] = deepclone(source[i]) }else{ t[k['text']][i] = source[i]['name']; k['children'][i] = source[i]['name']; // topic.push(source['name']); } } k['collapsed']=true; k['tooltip']='点击展开或折叠'; return k; }
这是一个 JavaScript 函数 `deepclone(source)` 的代码片段,用于深度克隆一个对象或数组。
函数的功能是将传入的 `source` 对象或数组进行深度克隆,并返回克隆后的结果。以下是对代码片段中各部分的解释:
1. `const k = {};`:创建一个空对象 `k`,用于存储克隆后的结果。
2. `k['text'] = source['name'];`:将 `source` 对象的 `name` 属性的值赋给 `k` 对象的 `text` 属性。
3. `t[source['name']] = [];`:假设 `t` 是一个全局变量或已经定义的对象,将 `source` 对象的 `name` 属性作为键,在 `t` 对象中创建一个空数组。
4. `k['children'] = source['children'].constructor === Array ? [] : {};`:判断 `source` 对象的 `children` 属性是否为数组,如果是,则将 `k` 对象的 `children` 属性设置为一个空数组,否则设置为一个空对象。
5. `source = quchong(source['children']);`:调用名为 `quchong()` 的函数对 `source` 对象的 `children` 属性进行处理,并将处理后的结果赋值给 `source`。
6. 使用 `for...in` 循环遍历 `source` 对象的属性或数组元素。
- 如果当前属性或元素的 `children` 属性存在且是一个对象,且其长度大于 0,将 `source[i]['name']` 存入 `t[k['text']][i]` 中,然后递归调用 `deepclone()` 函数克隆 `source[i]` 对象,并将结果存入 `k['children'][i]` 中。
- 否则,将 `source[i]['name']` 存入 `t[k['text']][i]` 中,并将 `source[i]['name']` 存入 `k['children'][i]` 中。
7. `k['collapsed'] = true;`:将 `k` 对象的 `collapsed` 属性设置为 `true`。
8. `k['tooltip'] = '点击展开或折叠';`:将 `k` 对象的 `tooltip` 属性设置为 `'点击展开或折叠'`。
9. 返回克隆后的对象 `k`。
需要注意的是,代码片段中涉及到的 `quchong()` 函数并未提供,你可能需要根据实际需求自行实现该函数。
import pandas as pd import numpy as np import matplotlib.pyplot as plt table = pd.read_excel("order_quchong.xlsx") row = table.columns.tolist() for i in range(len(row)): if row[i] == 'item_price': oneindex1 = i elif row[i] == 'ord_qty': oneindex2 = i price = table.iloc[:,oneindex1].tolist() ordqty = table.iloc[:,oneindex2].tolist() Price = sorted(set(price)) OrdNumeber = [] for i in range(len(Price)): sum = 0 for j in range(len(ordqty)): if price[j] == Price[i]: sum += ordqty[j] OrdNumeber.append(int(sum)) x = np.arange(1, max(Price) + 0.01, 0.001) y = np.interp(x, Price, OrdNumeber) plt.plot(x, y) plt.show()优化代码
可以使用pandas的groupby方法和agg方法对表格数据进行聚合操作,用于计算每个item_price对应的ord_qty总和,而无需通过for循环遍历每个item_price。代码如下:
```
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
table = pd.read_excel("order_quchong.xlsx")
# 使用groupby方法对item_price分组,并使用agg方法计算每个分组的ord_qty总和
grouped_table = table.groupby('item_price')['ord_qty'].agg('sum')
# 获取item_price和ord_qty数据
Price = grouped_table.index.tolist()
OrdNumeber = grouped_table.tolist()
# 使用numpy的arange方法生成数据范围
x = np.arange(1, max(Price), 0.01)
# 使用numpy的interp方法对item_price和ord_qty进行插值
y = np.interp(x, Price, OrdNumeber)
# 绘制图像
plt.plot(x, y)
plt.show()
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)