How to print x numbers with rand()%
How can I print let's say 10 numbers using rand() then sort them by biggest?
#include <iostream>
using namespace std;
int main() {
int b;
cin >> b;
srand(b);
for (int i = 0; i < 10; i++){
cout << rand() % 100000 << " ";
}
}
c++ c++11 c++14
add a comment |
How can I print let's say 10 numbers using rand() then sort them by biggest?
#include <iostream>
using namespace std;
int main() {
int b;
cin >> b;
srand(b);
for (int i = 0; i < 10; i++){
cout << rand() % 100000 << " ";
}
}
c++ c++11 c++14
3
Store them in a vector and sort the vector.
– FrankS101
Nov 12 '18 at 17:18
1
You could insert into a sorted structure (e.g.,std::multiset
) rather than sorting it after the fact. It's likely that this will be faster.
– Mike Harris
Nov 12 '18 at 17:26
@MikeHarris Actually, that's probably much slower on any common hardware… Even a (mostly unsuccessful)std::find()
over an unsortedstd::vector<int>
consistently beats astd::set<int>::find()
on my Ivy Bridge work laptop for N<=120. And, in your example, there isn't an asymptotic time advantage, so chances are thestd::vector
+std::sort
will always win no matter how you choose N. "Processors love vectors – they send them flowers…" (Herb Sutter)
– Arne Vogel
Nov 13 '18 at 18:40
add a comment |
How can I print let's say 10 numbers using rand() then sort them by biggest?
#include <iostream>
using namespace std;
int main() {
int b;
cin >> b;
srand(b);
for (int i = 0; i < 10; i++){
cout << rand() % 100000 << " ";
}
}
c++ c++11 c++14
How can I print let's say 10 numbers using rand() then sort them by biggest?
#include <iostream>
using namespace std;
int main() {
int b;
cin >> b;
srand(b);
for (int i = 0; i < 10; i++){
cout << rand() % 100000 << " ";
}
}
c++ c++11 c++14
c++ c++11 c++14
asked Nov 12 '18 at 17:16
Gosho
64
64
3
Store them in a vector and sort the vector.
– FrankS101
Nov 12 '18 at 17:18
1
You could insert into a sorted structure (e.g.,std::multiset
) rather than sorting it after the fact. It's likely that this will be faster.
– Mike Harris
Nov 12 '18 at 17:26
@MikeHarris Actually, that's probably much slower on any common hardware… Even a (mostly unsuccessful)std::find()
over an unsortedstd::vector<int>
consistently beats astd::set<int>::find()
on my Ivy Bridge work laptop for N<=120. And, in your example, there isn't an asymptotic time advantage, so chances are thestd::vector
+std::sort
will always win no matter how you choose N. "Processors love vectors – they send them flowers…" (Herb Sutter)
– Arne Vogel
Nov 13 '18 at 18:40
add a comment |
3
Store them in a vector and sort the vector.
– FrankS101
Nov 12 '18 at 17:18
1
You could insert into a sorted structure (e.g.,std::multiset
) rather than sorting it after the fact. It's likely that this will be faster.
– Mike Harris
Nov 12 '18 at 17:26
@MikeHarris Actually, that's probably much slower on any common hardware… Even a (mostly unsuccessful)std::find()
over an unsortedstd::vector<int>
consistently beats astd::set<int>::find()
on my Ivy Bridge work laptop for N<=120. And, in your example, there isn't an asymptotic time advantage, so chances are thestd::vector
+std::sort
will always win no matter how you choose N. "Processors love vectors – they send them flowers…" (Herb Sutter)
– Arne Vogel
Nov 13 '18 at 18:40
3
3
Store them in a vector and sort the vector.
– FrankS101
Nov 12 '18 at 17:18
Store them in a vector and sort the vector.
– FrankS101
Nov 12 '18 at 17:18
1
1
You could insert into a sorted structure (e.g.,
std::multiset
) rather than sorting it after the fact. It's likely that this will be faster.– Mike Harris
Nov 12 '18 at 17:26
You could insert into a sorted structure (e.g.,
std::multiset
) rather than sorting it after the fact. It's likely that this will be faster.– Mike Harris
Nov 12 '18 at 17:26
@MikeHarris Actually, that's probably much slower on any common hardware… Even a (mostly unsuccessful)
std::find()
over an unsorted std::vector<int>
consistently beats a std::set<int>::find()
on my Ivy Bridge work laptop for N<=120. And, in your example, there isn't an asymptotic time advantage, so chances are the std::vector
+std::sort
will always win no matter how you choose N. "Processors love vectors – they send them flowers…" (Herb Sutter)– Arne Vogel
Nov 13 '18 at 18:40
@MikeHarris Actually, that's probably much slower on any common hardware… Even a (mostly unsuccessful)
std::find()
over an unsorted std::vector<int>
consistently beats a std::set<int>::find()
on my Ivy Bridge work laptop for N<=120. And, in your example, there isn't an asymptotic time advantage, so chances are the std::vector
+std::sort
will always win no matter how you choose N. "Processors love vectors – they send them flowers…" (Herb Sutter)– Arne Vogel
Nov 13 '18 at 18:40
add a comment |
1 Answer
1
active
oldest
votes
You can generate an array, print it, and then sort it (and reprint it?).
Note: if true randomness is an issue for you, rand()
+ %
is not suited.
#include <array>
#include <algorithm>
#include <iostream>
int main()
{
std::array<int, 10> data;
std::generate(begin(data), end(data), rand);
for (auto n : data) {
std::cout << n << ", ";
}
std::cout << 'n';
std::sort(begin(data), end(data));
for (auto n : data) {
std::cout << n << ", ";
}
std::cout << 'n';
}
demo: http://coliru.stacked-crooked.com/a/2e62855189995ab0
Following: how could I define an operator to be able to write std::cout << data
whatever the type of data
is?.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53267053%2fhow-to-print-x-numbers-with-rand%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You can generate an array, print it, and then sort it (and reprint it?).
Note: if true randomness is an issue for you, rand()
+ %
is not suited.
#include <array>
#include <algorithm>
#include <iostream>
int main()
{
std::array<int, 10> data;
std::generate(begin(data), end(data), rand);
for (auto n : data) {
std::cout << n << ", ";
}
std::cout << 'n';
std::sort(begin(data), end(data));
for (auto n : data) {
std::cout << n << ", ";
}
std::cout << 'n';
}
demo: http://coliru.stacked-crooked.com/a/2e62855189995ab0
Following: how could I define an operator to be able to write std::cout << data
whatever the type of data
is?.
add a comment |
You can generate an array, print it, and then sort it (and reprint it?).
Note: if true randomness is an issue for you, rand()
+ %
is not suited.
#include <array>
#include <algorithm>
#include <iostream>
int main()
{
std::array<int, 10> data;
std::generate(begin(data), end(data), rand);
for (auto n : data) {
std::cout << n << ", ";
}
std::cout << 'n';
std::sort(begin(data), end(data));
for (auto n : data) {
std::cout << n << ", ";
}
std::cout << 'n';
}
demo: http://coliru.stacked-crooked.com/a/2e62855189995ab0
Following: how could I define an operator to be able to write std::cout << data
whatever the type of data
is?.
add a comment |
You can generate an array, print it, and then sort it (and reprint it?).
Note: if true randomness is an issue for you, rand()
+ %
is not suited.
#include <array>
#include <algorithm>
#include <iostream>
int main()
{
std::array<int, 10> data;
std::generate(begin(data), end(data), rand);
for (auto n : data) {
std::cout << n << ", ";
}
std::cout << 'n';
std::sort(begin(data), end(data));
for (auto n : data) {
std::cout << n << ", ";
}
std::cout << 'n';
}
demo: http://coliru.stacked-crooked.com/a/2e62855189995ab0
Following: how could I define an operator to be able to write std::cout << data
whatever the type of data
is?.
You can generate an array, print it, and then sort it (and reprint it?).
Note: if true randomness is an issue for you, rand()
+ %
is not suited.
#include <array>
#include <algorithm>
#include <iostream>
int main()
{
std::array<int, 10> data;
std::generate(begin(data), end(data), rand);
for (auto n : data) {
std::cout << n << ", ";
}
std::cout << 'n';
std::sort(begin(data), end(data));
for (auto n : data) {
std::cout << n << ", ";
}
std::cout << 'n';
}
demo: http://coliru.stacked-crooked.com/a/2e62855189995ab0
Following: how could I define an operator to be able to write std::cout << data
whatever the type of data
is?.
edited Nov 13 '18 at 14:48
answered Nov 12 '18 at 17:23
YSC
20.8k34594
20.8k34594
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53267053%2fhow-to-print-x-numbers-with-rand%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
3
Store them in a vector and sort the vector.
– FrankS101
Nov 12 '18 at 17:18
1
You could insert into a sorted structure (e.g.,
std::multiset
) rather than sorting it after the fact. It's likely that this will be faster.– Mike Harris
Nov 12 '18 at 17:26
@MikeHarris Actually, that's probably much slower on any common hardware… Even a (mostly unsuccessful)
std::find()
over an unsortedstd::vector<int>
consistently beats astd::set<int>::find()
on my Ivy Bridge work laptop for N<=120. And, in your example, there isn't an asymptotic time advantage, so chances are thestd::vector
+std::sort
will always win no matter how you choose N. "Processors love vectors – they send them flowers…" (Herb Sutter)– Arne Vogel
Nov 13 '18 at 18:40