- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个类,我想在其中生成字符串“123”的所有排列
所以我想要字符串“123”、“321”、“132”等
在这个类中我定义了一个 vector 它将包含我稍后要使用的所有这些字符串...
这是我用来查找所有排列的递归:
findPermutations(char *set, int begin, int end){
int i;
int range = end - begin;
if(range == 0) myvE.push_back(set); //notice how I want to update the vector
else{
for(i=0;i<range;i++){
swap(set[begin],set[begin+i]);
findPermutations(set,begin+1,end);
swap(set[begin],set[begin+i]);
}
}
}
如果范围为 0,则该集合将只有下一个排列。我想将该排列存储在 vector 中,但最后我的 vector 充满了“123”字符串
我不明白这是怎么回事
有人可以帮帮我吗?
谢谢
最佳答案
我认为问题在于您多次将指向同一字符串的指针添加到 vector 中,这意味着您的 vector 将存储多个指向完全相同字符串的指针。由于您在递归中改变此字符串,因此多次输出相同的字符串。
要解决此问题,请考虑将字符串的拷贝存储在 vector 中,或者切换到类似 atd::string 的类型,以便将字符串添加到 vector 中实际上会为您创建一个拷贝。
希望这对您有所帮助!
关于c++ - 在运行递归函数时将新元素插入 vector 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10064102/
我正在用 Java 编写代码,并且使用 Vaadin 8 扩展。 我有一个 Vaadin 组合盒,效果很好。但我不仅想从组合框中选择项目,还想选择书面输入。这意味着我想使用组合框作为下拉菜单以及文本编
我正在尝试将 AJAX 添加到 JQuery ListView 中并呈黄色闪烁,但我似乎无法使其正常工作。谁能指出我正确的方向? http://jsfiddle.net/zFybm/ 最佳答案 根据
我有这个样式表: .pixel{ position: absolute; height: 10px; width: 10px; background-color: #f
这是我用来将新行推送到容器的一行代码: this.$el.append(new ItemView(item).render().el); 其中item是Backbone.js model,render
我正在尝试在 anguar.js 中制作一些测试应用程序,但遇到了问题。我的 js 文件包含: live = angular.module('live',[]); live.controller('p
如何绑定(bind)页面加载后创建的新元素? 我有这样的东西 system = function() { this.hello = function() { alert
html5 新元素(页眉、导航、页脚等)在 IE 中不工作 最佳答案 您需要包含 HTML5 shiv 脚本以允许在旧版 IE 浏览器中设置 HTML5 元素的样式:http://code.googl
我是一名优秀的程序员,十分优秀!