#include <iostream>
#include <string>
#include <set>
typedef std::set< std::string > StringSet;
int main()
{
const char* a[] = {"first", "second", "third", "42"};
StringSet strings;
// заполнение массива
for (size_t i=0; i<sizeof(a)/sizeof(a[0]); i++)
strings.push( a );
// готов отсортированный набор
for (StringSet::iterator it=strings.begin(); it!=strings.end(); it++)
std::cout << *it << "; ";
std::cin.get();
return 0;
}
Сортировка строк
Извиняюсь, существует ли возможность в C++ Builder встроенная функция сортировки по алфавиту, если да то какая, как её подключить и как использовать.
Если вам охота как можно легче отсортировать строки - используйте контейнер, который хранит значения в отсортированном порядке. Где-то так:
Код:
На сколько я помню, для set нет оператора[], если он вам позарез нужен - никто не мешает использовать std::vector<std::string> в паре с std::sort
Код:
#include <vector>
#include <algorithm>
#include <string>
#include <iostream>
typedef std::vector< std::string > StringArray;
int main()
{
const char* a[] = {"first", "second", "third", "42"};
StringArray strings;
// заполнение массива
for (size_t i=0; i<sizeof(a)/sizeof(a[0]); i++)
strings.push( a );
// сортируем массив
std::sort( strings.begin(), strings.end() );
// готов
for (StringArray::iterator it=strings.begin(); it!=strings.end(); it++)
std::cout << *it << "; ";
// *** вполне можно юзать cout << strings[..];
std::cin.get();
return 0;
}
#include <algorithm>
#include <string>
#include <iostream>
typedef std::vector< std::string > StringArray;
int main()
{
const char* a[] = {"first", "second", "third", "42"};
StringArray strings;
// заполнение массива
for (size_t i=0; i<sizeof(a)/sizeof(a[0]); i++)
strings.push( a );
// сортируем массив
std::sort( strings.begin(), strings.end() );
// готов
for (StringArray::iterator it=strings.begin(); it!=strings.end(); it++)
std::cout << *it << "; ";
// *** вполне можно юзать cout << strings[..];
std::cin.get();
return 0;
}
KPI Student, советую заполнять STL-контейнер подходящим для этого конструктором этого контейнера, а не в цикле for.
Код:
const char* a[SIZE] = { ... };
StringArray strings( a, a+SIZE );
StringSet strings( a, a+SIZE );
StringArray strings( a, a+SIZE );
StringSet strings( a, a+SIZE );
Всем огромное слово.