svn commit: r268498 - head/usr.bin/users
Ed Schouten
ed at FreeBSD.org
Thu Jul 10 15:56:16 UTC 2014
Author: ed
Date: Thu Jul 10 15:56:15 2014
New Revision: 268498
URL: http://svnweb.freebsd.org/changeset/base/268498
Log:
Let users(1) use an std::set, instead of std::{vector,sort,unique}.
Reviewed by: gahr
Modified:
head/usr.bin/users/users.cc
Modified: head/usr.bin/users/users.cc
==============================================================================
--- head/usr.bin/users/users.cc Thu Jul 10 15:14:37 2014 (r268497)
+++ head/usr.bin/users/users.cc Thu Jul 10 15:56:15 2014 (r268498)
@@ -36,14 +36,14 @@ __FBSDID("$FreeBSD$");
#include <iostream>
#include <iterator>
#include <string>
-#include <vector>
+#include <set>
using namespace std;
int
main(int argc, char **)
{
struct utmpx *ut;
- vector<string> names;
+ set<string> names;
if (argc > 1) {
cerr << "usage: users" << endl;
@@ -51,19 +51,16 @@ main(int argc, char **)
}
setutxent();
- while ((ut = getutxent()) != NULL) {
- if (ut->ut_type != USER_PROCESS)
- continue;
- names.push_back(ut->ut_user);
- }
+ while ((ut = getutxent()) != NULL)
+ if (ut->ut_type == USER_PROCESS)
+ names.insert(ut->ut_user);
endutxent();
- if (names.size() == 0) {
- return (0);
+ if (!names.empty()) {
+ auto last = names.end();
+ --last;
+ copy(names.begin(), last, ostream_iterator<string>(cout, " "));
+ cout << *last << endl;
}
-
- sort(begin(names), end(names));
- vector<string>::iterator last(unique(begin(names), end(names)));
- copy(begin(names), last-1, ostream_iterator<string>(cout, " "));
- cout << *(last-1) << endl;
+ return (0);
}
More information about the svn-src-head
mailing list