用c++编写代码,1.读取一个文件,每一行只有1个数据;把这些数据存储在一个容器A中 ;2. 用最快的方式实现,查找一个变量是否存在于容器A中;
时间: 2024-02-24 07:59:11 浏览: 18
好的,这是两个问题,我来回答。
第一个问题,读取文件并将每一行的数据存储在一个容器中,可以参考下面的C++代码:
```cpp
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
using namespace std;
int main() {
ifstream fin("data.txt"); // 打开文件
if (!fin) { // 判断文件是否打开成功
cerr << "Error opening file" << endl;
return -1;
}
vector<int> A; // 定义一个存储数据的容器A
int num;
while (fin >> num) { // 逐行读取数据
A.push_back(num); // 将数据存储到容器A中
}
fin.close(); // 关闭文件
// 输出容器A中的数据
for (int i = 0; i < A.size(); i++) {
cout << A[i] << " ";
}
cout << endl;
return 0;
}
```
这段代码假设文件名为"data.txt",文件中每一行只有一个整数,将所有的整数读取到容器A中,并输出容器A中的所有数据。
第二个问题,如何用最快的方式查找一个变量是否存在于容器A中,可以使用C++ STL中的set容器,set容器是一种基于红黑树实现的自动排序的关联容器,可以自动去重,并且查找速度非常快。具体实现代码如下:
```cpp
#include <iostream>
#include <fstream>
#include <set>
#include <string>
using namespace std;
int main() {
ifstream fin("data.txt"); // 打开文件
if (!fin) { // 判断文件是否打开成功
cerr << "Error opening file" << endl;
return -1;
}
set<int> A; // 定义一个存储数据的set容器A
int num;
while (fin >> num) { // 逐行读取数据
A.insert(num); // 将数据存储到set容器A中
}
fin.close(); // 关闭文件
// 查找一个变量是否存在于set容器A中
int x = 5;
if (A.find(x) != A.end()) { // 如果找到了x
cout << "Found " << x << " in set A" << endl;
} else { // 如果没有找到x
cout << "Could not find " << x << " in set A" << endl;
}
return 0;
}
```
这段代码使用set容器存储数据,并查找一个变量x是否存在于set容器A中。实际上,set容器的查找速度比vector容器的查找速度快得多,因为set容器内部实现了自动排序和二分查找。