我是一个新手,请不要使用vector 不要使用指针 不要使用set
时间: 2024-10-04 09:05:06 浏览: 17
一个大学生的C++笔记.zip
如果你是个新手程序员并且需要避免使用`vector`、指针以及`set`等高级数据结构,那么你可以考虑使用数组和基本的循环结构来解决问题。然而,需要注意的是,这可能会使得代码长度增加,效率也可能不如使用那些数据结构高效。下面是一个简单的示例,用数组替代`vector`来存储数字,并使用for循环遍历和计数排列:
```cpp
#include <iostream>
using namespace std;
int countUniqueNumbers(int n, int k, int a[]) { // 使用数组代替vector
int nums[n];
for (int i = 0; i < n; i++) {
cin >> nums[i]; // 读取每个数字到数组
}
int count = 0; // 初始化计数器
// 用嵌套循环模拟排列
for (int i = 0; i < n; ++i) {
for (int j = i + 1; j < n; ++j) {
// 移动数组元素并复制数组
for (int pos = n - 1; pos > j; --pos) {
nums[pos] = nums[pos - 1];
}
nums[j] = a[i]; // 将第一个数字放回原位置
count++; // 数字排列增加
}
}
return count;
}
int main() {
int n, k;
cin >> n >> k;
int a[n];
for (int i = 0; i < n; i++) {
cin >> a[i];
}
cout << countUniqueNumbers(n, k, a) << endl;
return 0;
}
```
在这个例子中,我们手动复制了数组元素来模拟排列的过程,但这将导致时间复杂度较高,尤其是当n较大时。因此,在实际项目中,还是推荐学习并使用更高效的工具如`vector`和数据结构,它们能够提供更好的性能和简洁的代码结构。
阅读全文