#include <iostream>
#include <fstream>
#include <cstdlib>
#include <vector>
#include <string>
using namespace std;
void alpha_sorting(vector<string>& a);
void swap_function(vector<string>& x,int& l);
string alpha_least(vector<string>& list,int& idx);
int min_word_index(string& min,vector<string>& listed);
int main(){
ifstream infile;
infile.open("words.txt");
if(!infile.is_open()){
cout << "Could not open the input file" << endl;
exit(EXIT_FAILURE);
}
vector<string> words;
string temp;
while(infile >> temp){
words.push_back(temp);
}
sort_words_alphabetically(words);
cout << "Those words in alphabetical order are " << endl;
return 0;
}
void alpha_sorting(vector<string>& a){
int index = 0;
while(index < a.size()){
swap_min_to_top(a, index);
index++;
}
for(int i = 0;i < a.size();i++){
cout << a[i] << endl;
}
}
void swap_function(vector<string>& x,int& l){
string temporary;
temporary = x[l];
wrdx[loc] = minimum_word(x, l);
int min_idx = min_word_index(x[l], x);
x[min_idx] = temporary;
}
string alpha_least(vector<string>& list,int& idx){
string temp = list[idx];
for(int i = idx;i < list.size();i++){
if(list[i] < temp){
temp = list[i];
}
}
return temp;
}
int min_word_index(string& min,vector<string>& listed){
for(int i = 0;i < listed.size();i++){
if(min == listed[i]){
return i;
}
}
return -1;
}
Привет всем,Устройте все слова в списке в алфавитном порядке в C++
Короче говоря, задание требует от нас, чтобы прочитать слова из файла и расположить их в алфавитном порядке, и отображать их на экран.
Назначение специально запрещает использование функций C++, таких как сортировка и т. Д., И ожидает, что мы создадим наш собственный алгоритм для упорядочивания этого вектора.
Мой алгоритм находит в списке минимальный (тот, который приходит в алфавите) (используя оператор «<»), а затем помещает его в начале вектора, обновляет индекс на 1 и повторяет процесс пока список не будет заказан. Моя единственная проблема заключается в том, что, как мне сообщили другие, использование векторов, заполненных строками, всегда беспорядочно, мой код не отображает правильный ответ (как если бы векторы не обновлялись или не выполняли какие-либо операции, если на то пошло).
Возможно, кто-то найдет, что случилось с моим кодом?
Для того, чтобы отсортировать векторный код * swap * elements. Ни в каком пункте вашего алгоритма у вас нет двух индексов, которые вы меняете. Похоже, вы просматриваете половину обмена. Попытайтесь сделать эту функцию первым * поиском *, что он хочет поменять местами, и только потом сделать обмен. –
dascandy
@ dascandy Я сделал функцию swap_min_to_top для этого. что-то не так? – Afr0
Если это не домашняя работа, попробовали ли вы 'std :: sort'? –