这是我的代码。我正在尝试在其中找到最大元素。 Data_Test文件是具有12个数据的简单txt文件。在我的情况下,下面依次列出彼此的12个数字:122 135 148 156 178 189 256 114 125 136 630 360
。编译器说cannot convert 'main()::str' to 'int' in initialization
。如何将其转换为int
?
ifstream input("Data_Test.txt");
const int NUMstr = 4;
struct str{
string Data[NUMstr];
};
str vec;
vector<str> event;
int maxElementIndex = max_element(event.begin(), event.end()) - event.begin();
int maxElement = *max_element(event.begin(), event.end());
int minElementIndex = min_element(event.begin(), event.end()) - event.begin();
int minElement = *min_element(event.begin(), event.end());
cout << "maxElementIndex:" << maxElementIndex << ", maxElement:" << maxElement;
cout << "minElementIndex:" << minElementIndex << ", minElement:" << minElement;
答案 0 :(得分:1)
第一个奇怪的事情是为什么当您实际上有整数时才使用字符串。
第二个奇怪的事情是为什么(有效地)拥有一个数组向量。
struct str{
string Data[NUMstr];
};
这是包装在结构内部的数组。这个vector<str>
是结构的向量,每个结构都包装一个数组。我认为没有理由需要它,在问题描述中,您仅列出了十二个数字。
您对迭代器的工作方式也有些困惑。
所以我怀疑您只是感到困惑,并使事情变得比他们需要的复杂。该代码有效,它是一个简单的整数向量,我怀疑这就是您所需要的全部。
vector<int> event;
...
int maxElementIndex = max_element(event.begin(), event.end()) - event.begin();
int maxElement = event[maxElementIndex];
答案 1 :(得分:0)
您需要了解逻辑,如何将您的str
结构转换为int
。您可以使用std::stoi
将std::string
转换为int
,例如:
const int i = std::stoi("123");