迭代器出现了点问题,有无大佬看看
查看原帖
迭代器出现了点问题,有无大佬看看
268811
画船听雨楼主2022/1/10 15:26
#include<iostream>
#include<vector>
#include<set>

using namespace std;

int main() {
	set<int> a;
	vector<int> b;
	set<int>::iterator it;
	int n, temp, i, j,temp1,subf,subb,min,num=0;
	cin >> n;
	for (i = 0; i < n; i++) {
		cin >> temp;
		if (a.empty()) {/*如果set里面为空,插入第一个元素*/
			a.insert(temp);
			b.push_back(temp);
		}
		else {
			if (a.count(temp) == 0) {/*如果temp没出现过,插入*/
				a.insert(temp);
				it = a.lower_bound(temp);
				it--;		
				subf = temp - *it;/*找temp的前面一个元素*/
				min = subf;
				++it;
				++it;
				if (it != a.end()) {/*找temp的后一个元素,如果有的话*/
					subb = *it - temp;
					if (subb < subf)
						min = subb;
				}
				b.push_back(min);
			}
			else {
				b.push_back(0);
			}
		}
	}
	for (i = 0; i < b.size(); i++) {
		num = num + b[i];
	}
	cout << num;
	return 0;
}
2022/1/10 15:26
加载中...