Im работает над алгоритмом на C++, а im пытается ускорить его выполнение, изменив cin на scanf. Но когда я это сделал, у меня начались ошибки SIGSEGV.Программа получила сигнал SIGSEGV при использовании scanf
int main(){
int nominal;
int check;
string b;
int x;
int a;
int i = 0;
//cin >> a;
scanf ("%d",&a);
for (int i = 0; i<a; i++){
//cin >> b;
scanf("%s",&b);
std::priority_queue <int> Q;
std::priority_queue < int, std::vector <int>, std::greater <int> > moneyBox;
while (b!="0"){
Код перестает работать при входе в первый раз. Какие-нибудь советы по его устранению?
Вы не можете использовать 'std :: string' с' scanf ("% s", &b); '. Используйте' getline() 'или' cin >> b; 'вместо. –
@ πάνταῥεῖ Не совсем верно. '' resize (big_enough) '', а затем '' data() '' член, а затем установите размер в правильное значение позже. – BitTickler
Помимо этой технической информации - вы не ускоряете ничего с этим изменением здесь. быстродействующий шрифт, время, необходимое для записи ввода, делает разницу во времени - если есть какое-либо из ваших изменений, пренебрежимо мало. – BitTickler