这是我的代码
public class one_one_one {
public static void main(String[] args) {
String chars = "hello";
if (isUniqueChars(chars)) {
System.out.println("Unique");
} else {
System.out.println("Not Unique");
}
}
public static boolean isUniqueChars(String str) {
int checker = 0;
for (int i = 0; i < str.length(); i++) {
int val = str.charAt(i) - 'a';
System.out.println(Integer.toBinaryString(val)); //debug printout
int temp = 1 << val;
System.out.println(Integer.toBinaryString(temp)); //debug printout
System.out.println(checker & (1 << val)); //debug printout
if ((checker & (1 << val)) > 0) {
return false;
}
checker |= (1 << val);
System.out.println(Integer.toBinaryString(checker)); //debug printout
System.out.println(' '); //debug printout
}
return true;
}
}
我正在尝试为研究/实践目的制作自己的smart_pointer。
问题:
1。)&#34; int []&#34;做vs&#34; int&#34;作为参数? 因为这两种情况都适用于unique_ptr,我想知道 如果它们重要。
2)如何让我的模板接受&#34; int []&#34;作为参数?
3)有没有办法知道我要删除的是什么类型的对象(如果它是一个数组?)因为
有2种删除,template<typename B>
class carl_ptr{
public:
B* ptr;
carl_ptr(B* asd){
ptr = asd;
}
~carl_ptr(){
delete ptr;
}
};
class dummy{
public:
~dummy(){
std::cout<<"destructed"<<std::endl;
}
};
int main()
{
carl_ptr<int> carl(new int[10]);
//std::unique_ptr<int[]> asd(new int[10]); //int[] parameter like this?
}
和delete[]
,我想要区分,所以我会知道要应用什么。