Click here to Skip to main content
15,892,965 members
Please Sign up or sign in to vote.
1.00/5 (2 votes)
See more:
Write a function
void arrangeVector(vector<int> & V)
to compute the following task.
The function re-arranges the elements of the vector V such that all negative numbers in
the array appear before all the non-negative integers.
Note that the vector need not be sorted, only the negative numbers must appear first.
You should not use a secondary array or vector to accomplish this task.
NOTE:-
You should
ONLY
write this function
Do not write a
MAIN FUNCTION.
If you do so, your code will not compile and will be
awarded a zero.
Also,
do not change the name of the function
and fill in your code, only write in the
function body provided.
Also, you do not need to take any input from the user and should not print anything. So, do
not use any
cin
or
cout
statements.

What I have tried:

#include <iostream>
#include <vector>

using namespace std;

void arrangeVector(vector<int> & V){

// Complete the function. DO NOT WRITE A MAIN
// DO NOT CHANGE THE FUNCTION NAME
// Write your code below




}
Posted
Updated 18-Sep-18 23:16pm

We do not do your homework: it is set for a reason. It is there so that you think about what you have been told, and try to understand it. It is also there so that your tutor can identify areas where you are weak, and focus more attention on remedial action.

Try it yourself, you may find it is not as difficult as you think!

If you meet a specific problem, then please ask about that and we will do our best to help. But we aren't going to do it all for you!
 
Share this answer
 
So, you show no attempt to solve the problem yourself, you have no question, you just want us to do your HomeWork.
HomeWork problems are simplified versions of the kind of problems you will have to solve in real life, their purpose is learning and practicing.
We do not do your HomeWork.
HomeWork is not set to test your skills at begging other people to do your work, it is set to make you think and to help your teacher to check your understanding of the courses you have taken and also the problems you have at applying them.
Any failure of you will help your teacher spot your weaknesses and set remedial actions.
Any failure of you will help you to learn what works and what don't, it is called 'trial and error' learning.
So, give it a try, reread your lessons and start working. If you are stuck on a specific problem, show your code and explain this exact problem, we might help.

As programmer, your job is to create algorithms that solve specific problems and you can't rely on someone else to eternally do it for you, so there is a time where you will have to learn how to. And the sooner, the better.
When you just ask for the solution, it is like trying to learn to drive a car by having someone else training.
Creating an algorithm is basically finding the maths and make necessary adaptation to fit your actual problem.
Quote:
Do not write a
MAIN FUNCTION.

Advice: write a main function, so you can compile the code and check what it does.
the main function call 'arrangeVector' with some sample data.
Then remove the main function before submitting.
 
Share this answer
 
This homework is so simple. Think about tiny steps like

1. find elements which are less than zero
2. move the element to the start of the vector

Learn from some vector tutorial.

tip: make a sample project in which you include your solution code file.
 
Share this answer
 
Suppose you make a loop over vector items.
At iteration i, if v[i] is negative then continue the iteration.
On the other hand, if v[i] is not-negative then perform another loop (starting with j = i + 1) in order to find a v[j] negative: if such item is not found then you've finished. On the other hand, if such item is found swap v[i] with v[j] and continue the outer loop iteration.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900