Учитывая ваш пример, предполагая, что вся строка состоит из строчных букв и допустимых символов, существует довольно простое решение (то есть вы обрабатываете проверку)
for (int i = 0; i < word.size(); i++) {
amounts[word[i]-'a']++; // you can also do a pre-increment if you want
}
Попробовать ps -w -w aux
.-w опция устанавливает вывод на широкий, и выполнение его дважды делает ширину неограниченной. "aux" часть заставляет его показать больше информации и является (afaik) довольно стандартным режимом для использования. Это - конечно, иждивенец платформы, вышеупомянутые работы с procps версией 3.2.7 на Linux.
Укажите w
опция дважды, если Вы используете BSD-стиль ps
. например, ps auwwx
. Другой набор опций применяется при использовании System V ps
.
Существует два различных синтаксиса опции для PS; стандартный POSIX один на основе SysV и BSD один. PS GNU, как используется на Linux, поддерживает обоих, которых он может сделать, потому что опции POSIX имеют тире впереди, и BSD не делают, а также некоторые опции сами по себе в нормальном GNU - стиль длинного имени опции.
Так или иначе для получения всех процессов в стиле POSIX-e, в BSD это - топор (включение процессов другого пользователя, x включает процессы без терминала управления т.е. демонов).
Нет никакой единственной опции, которая заставит его включать все столбцы. Существует огромное количество возможных столбцов. Опции POSIX-f,-F и-L вся причина это для показа различных наборов дополнительных столбцов, как делает опцию u BSD (следовательно "PS aux" упомянутый в другом ответе является очень общей командой).
Если Вы действительно хотите больше столбцов, чем это, необходимо назвать явно, которые Вы хотите, с помощью-o (или o) опция. См. страницу справочника для списка. Существует приблизительно сто различных имен, которые можно использовать, но некоторые из них являются дубликатами, и другие отображают ту же информацию по-разному.