Я новичок в С++, в основном я принадлежу к PHP. Поэтому я пытаюсь написать программу только для практики, чтобы отсортировать массив. Я успешно создал программу со значением статического массива, которое
// sort algorithm example
#include <iostream> // std::cout
#include <algorithm> // std::sort
#include <vector> // std::vector
bool myfunction (int i,int j) { return (i<j); }
struct myclass { bool operator() (int i,int j) { return (i<j);} } myobject;
int main () {
int myints[] = {55,82,12,450,69,80,93,33};
std::vector<int> myvector (myints, myints+8);
// using default comparison (operator <):
std::sort (myvector.begin(), myvector.begin()+4);
// using function as comp
std::sort (myvector.begin()+4, myvector.end(), myfunction);
// using object as comp
std::sort (myvector.begin(), myvector.end(), myobject);
// print out content:
std::cout << "myvector contains:";
for (std::vector<int>::iterator it=myvector.begin(); it!=myvector.end(); ++it)
std::cout << ' ' << *it;
std::cout << '\n';
return 0;
}
его выход в порядке. Но я хочу, чтобы элементы вводились пользователем с разделением space
или ,
. Итак, я пробовал это
int main () {
char values;
std::cout << "Enter , seperated values :";
std::cin >> values;
int myints[] = {values};
/* other function same */
}
он не выдает ошибку при компиляции. Но оп не так, как требуется. это
Введите, разделенные значения: 20,56,67,45
myvector содержит: 0 0 0 0 50 3276800 4196784 4196784
------------------ (программа завершилась с кодом: 0) Нажмите клавишу возврата, чтобы продолжить
values
равно onechar
, поэтому ваш массив содержит ровно один элемент. Вы должны использоватьstd::vector<int>
иpush_back
. (Примеры есть во всем интернете.) - person molbdnilo   schedule 07.09.2015int
, так как он уже поддерживаетoperator<
. - person user877329   schedule 07.09.2015