也许这是一个非常愚蠢的问题,但是我正在阅读的书却指示我编写一段代码,该代码使用算法对向量中的元素进行加扰和排序。为此,本书告诉我使用C
++主库中的算法库。好的,到目前为止,我理解了它,但是在编写代码之后,我想看看如果我从代码的顶部删除该库会导致什么中断,令我惊讶的是一切仍然有效。
这是我正在谈论的代码。当我从代码的顶部删除“ #include算法”时,没有任何中断。怎么会这样?不使用该库时,“
random_shuffle”部分不应该中断吗?
#include <iostream>
#include <vector>
#include <algorithm>
#include <ctime>
#include <cstdlib>
using namespace std;
int main()
{
vector<int>::const_iterator iter;
cout << "Creating a list of scores.";
vector<int> scores;
scores.push_back(1500);
scores.push_back(3500);
scores.push_back(7500);
cout << "\nHigh Scores:\n";
for (iter = scores.begin(); iter != scores.end(); ++iter)
{
cout << *iter << endl;
}
cout << "\nFinding a score.";
int score;
cout << "\nEnter a score to find: ";
cin >> score;
iter = find(scores.begin(), scores.end(), score);
if (iter != scores.end())
{
cout << "Score found.\n";
}
else
{
cout << "Score not found.\n";
}
cout << "\nRandomizing scores.";
srand(static_cast<unsigned int>(time(0)));
random_shuffle(scores.begin(), scores.end());
cout << "\nHigh Scores:\n";
for (iter = scores.begin(); iter != scores.end(); ++iter)
{
cout << *iter << endl;
}
cout << "\nSorting scores.";
sort(scores.begin(), scores.end());
cout << "\nHigh Scores:\n";
for (iter = scores.begin(); iter != scores.end(); ++iter)
{
cout << *iter << endl;
}
system("pause");
return 0;
}
它起作用的原因是因为还包含了一个标头。
例如,向量可能在其源代码中包含算法。这很常见,因为它们通常仅是标头。
也就是说,您不能依赖标准库的特定实现在每个标头中具有相同的包含。(例如与可能与MSVC一起使用,而与gcc stdlibc +++可能会中断)。
由于这个原因,我强烈建议包括您使用的内容,而不管它在哪里编译。-–请注意,这与“您引用的内容”略有不同,因为在标头中对点和引用的正向声明可以显着缩短构建时间。
问题内容: 我使用免费的虚拟主机000webhost。该服务还可以,但是它会在每个文件和请求中插入一些javascript计数器。该脚本如下所示。 如果我做一个jQuery发布,它破坏了我的代码,我没有任何回应。 我该如何解决?如何删除托管JavaScript代码? 问题答案: 他们在其cPanel中有一个链接,您可以在其中禁用分析代码。 http://members.000webhost.com
问题内容: 我知道Go中没有析构函数,因为从技术上讲没有类。这样,我用来执行与构造函数相同的功能。但是,有没有办法在终止的情况下创建某些东西来模仿析构函数,例如使用关闭文件?现在,我只是打电话给我,但这有点荒唐,我认为设计很差。正确的方法是什么? 问题答案: 在Go生态系统中,存在一种处理包装了宝贵(和/或外部)资源的对象的惯用语:一种专门用于释放该资源的特殊方法,通常通过该机制进行 显式 调用。
.替换(...,Frag2,...) -->frag2 -->frag1
问题内容: 我有一个用Restify和Mongoose在node.js中构建的REST服务,以及一个mongoDB,它的集合包含大约30.000个常规大小的文档。我的节点服务通过pmx和pm2运行。 昨天,节点突然开始通过消息“ MongoError:拓扑已被破坏”消除错误,仅此而已。我不知道这是什么意思,可能触发了什么。谷歌搜索时也没有太多发现。所以我想在这里问。 今天重新启动了节点服务后,错误
我想为我的移动应用程序添加背景,但当我使用“this.props.children”时,eslint说我“必须使用解构道具分配”。为什么我可以分解这些道具? 这是我的密码, 当我使用这个代码时 当我使用这个代码时, 提前感谢您的帮助!
在实际应用中,destroy方法的可能示例是什么?为什么一个正在运行的应用程序想要销毁它的bean?如果bean是由spring容器(比如ContextLoaderListener)为web应用程序创建的,那么如何重新创建这些bean,因为容器已经启动了。有没有办法在不重启应用服务器的情况下重启spring IoC容器?
问题内容: 来自Python,我不习惯看到超过80列的代码行。所以当我遇到这个: 我试图打破它 但是我明白了 我还尝试过按回车键并在末尾加分号来打破界限: 但是我再次得到: 所以我想知道用什么语言来做到这一点? 问题答案: 首先介绍一些背景。Go的正式语法在许多产品中都使用分号作为终止符,但是Go程序可能会省略大多数(它们应该有一个更清晰易读的源;也可以删除不必要的分号)。 该规范列出了确切的规则
对于Oracle池连接,我使用,但这些连接似乎在数据库中保持活动状态。今天我在连接到Oracle数据库时遇到了一个错误: ORA-12516:TNS:侦听器找不到具有匹配协议栈的可用处理程序 另外,我在dao级别使用jdk7 try-with-resources语法进行连接: 弄不清真正的问题在哪里。我应该使用c3p0而不是OracleDataSource吗?ojdbc7中是否有bug或我的代码中