有没有办法从字符串中删除重复的字符,就像它们可以从矢量中删除,如下所示
sort( vec.begin(), vec.end() );
vec.erase( unique( vec.begin(), vec.end() ), vec.end() );
Run Code Online (Sandbox Code Playgroud)
或者我只需要为它编写基本解决方案?我的想法:
我可以将所有字符添加到一个集合中
我希望我的列表包含一个整数值以及一个字符串值.这可能吗?
我正在使用STL列表实现一个哈希表,它只能存储整数.我正在散列一个字符串来获取我存储整数的索引.现在我希望我的字符串也与整数一起存储.
编辑1:
所以我使用这个声明:
list<pair<int,string>> table[127];
Run Code Online (Sandbox Code Playgroud)
这里是错误我得到:
>>' should be
>>'在一个嵌套的模板参数列表中确定我修复了这个..似乎我没有在">>"中放置一个空格所以现在它的修复
下一个问题
我如何将我的对添加到表数组?
我正在解决Project Euler问题29.如果地图中不存在,我有一个强力方法只是将所有找到的数字映射为真.我得到的答案是9216,这是不正确的.哪里出错了?我也尝试过使用套装,但它们都是一样的.
int main()
{
map <long double,bool> m;
long double x;
int c=0;
for(int i=2;i<=100;i++)
{
for(int j=2;j<=100;j++)
{
x=pow((long double)i,(long double)j);
if(m.find(x) == m.end())
{
m.insert ( pair<long double,bool>(x,true) );
c++;
cout<<x<<endl;
}
}
}
cout<<c<<endl;
Run Code Online (Sandbox Code Playgroud)
}
编辑:
我改变了这一行
m[x]=true;
Run Code Online (Sandbox Code Playgroud)
至
m.insert ( pair<long double,bool>(x,true) );
Run Code Online (Sandbox Code Playgroud)
答案仍然是一样的.
我在 laravel 5.2 中有一个遗留应用程序,我们使用队列来处理作业。我们观察到,队列有时会获取太多作业,这会导致重复作业被调度,因为之前的作业未完成处理,并且调度此类作业的 cron 会再次运行并最终一遍又一遍地调度它们。
一个简单的解决方案是使这些作业变得独特,如果是 Laravel 8,这将是一个非常简单的更改。但是,我们处于 Laravel 5.2 领域,所以我必须自己实现独特的作业。或者如果有人可以提出更好的选择?
另外,如果你要自己实施独特的工作,你会怎么做?我想到的方法是:
将作业的唯一键添加到缓存或数据库表中(意味着获得了锁) 处理作业后清除该条目(释放锁) 在分派作业之前,检查该键是否存在于缓存中(锁定)可以达到也可以不达到)