clion 代码补全很慢 ( clion code completion slow) clangd 配置

查看官网 https://www.jetbrains.com/help/clion/settings-languages-cpp-clangd.html中 关于code completion 的说明 以下配置开启路径: File | Settings | Languages and Frameworks | C/C++ | Clangd for Windows and Linux CLion | Preferences | Languages and Frameworks | C/C++ | Clangd for macOS 我们得知 CLion 提供了两种代码提示引擎一种内置,一种是 Clangd。 默认的选择是只用Clangd,而不会优先用内置引擎。我们选择剩下两个会发现代码提示的速度快了很多。 这个现象能初步判断内置引擎比Clangd要快。至于更深层的原因还待研究。

SuCicada

DFS的递归实现

对一个例子的理解,以下是关系图的关系矩阵,求从1开始能到哪个数 #include<iostream> #include<queue> # e<cstdio> #include<vector> #include<stack> using namespace std; int const N =5; int maze[N][N]={ {0,1,1,0,0}, {0,0,1,0,1}, {0,0,1,0,0}, {1,1,0,0,1}, {0,0,1,0,0} }; int visit[N+1]={0}; //循环的思路: //用递归,一旦有更深的点就产生新的循环,当深的点操作完了,就结束了这个陷得最深的循环。 void dfs1(int start) { visit[start]=1; for(int i=1;i<=N;i++) { if(!visit[i]&&maze[start-1][i-1]==1) { dfs1 (i); } } cout<<start<<" "; } void dfs2(int start) { stack<int>s; s.push(start); visit[start]=1; int iff=0; while(!s.empty()) { iff=0; int v=s.top(); for(int i=1;i<=N;i++) { if(visit[i]==0&&maze[v-1][i-1]==1) { iff=1;//代表if了 visit[i]=1;//第一层 s.push(i); break;//保证当前只走一条路 } } if(iff==0)//到头不if才执行 { cout<<v<<" "; s....

SuCicada

Flink 内存模型的分配策略 主公式推导

结论: 启动flink设定的 ytm数值 与实际监控展示的JVM_Heap数值关系是 (ytm大于1920的简化公式) JVM_Heap = ytm * 0.45 - 256 啓動參數: -ytm 设定的实际是 进程总内存,相当于yarn容器大小 Total_Process_Memory: ytm JVM_Metaspace: 默認 256m JVM_Overhead: 默認 jtm * 0.1 (必須在 192m ~ 1g (默認)) Total_Flink_Memory: Total_Process_Memory - JVM_Overhead - JVM_Metaspace Framework_Heap: 默認 128m Managed_Memory: 默認 Total_Flink_Memory * 0.4 Framework_Off-Heap: 默認 128m Task_Off-Heap: 默認 0 Network: 默認 Total_Flink_Memory * 0.1 (必須在 64m ~ 1g (默認)) 所以 Task_Heap = Total_Flink_Memory - Framework_Heap - Managed_Memory - Framework_Off-Heap - Task_Off-Heap - Network 如果都用默认配置,那么代入化简就是...

SuCicada

Flink 算子Function实例化的坑

问题回顾 关于一段代码: object MySingleObj{ // 陷阱: // 单例对象中一个是可变引用,一个是可变数组 var str:String = _ val list = new ListBuffer[String] } ... dataStream .map(new RichMapFunction(){ // 问题1:obj1 和 obj2 的实例方式有什么区别。 // 问题2:考虑参数0的作用以及是否会得到预期效果。 val obj1:MyClass = new MyClass(参数0) var obj2:MyClass = _ override def open(paramation:Configuration): Unit = { obj2 = new MyClass(参数0) } override def map(value, ....) = { // 问题3:如果在这里使用 obj1 和 obj2 会有什么区别。 // 问题4:单个slot中对单例对象中的变量修改,造成的影响是。 MySingleObj.str = value MySingleObj.list += value } }) ....

SuCicada

Flume 数据流的处理过程 从源码看 Source Channel Sink

Event 构成 Source Flume的三个部分:Source,Channel,Sink 数据是存储在Event对象中在这三部分之间传递 Event 构成 Event 接口 public interface Event { public Map<String, String> getHeaders(); public void setHeaders(Map<String, String> headers); public byte[] getBody(); public void setBody(byte[] body); } 以 最简单的实现类 SimpleEvent 为例子 public class SimpleEvent implements Event { private Map<String, String> headers; private byte[] body; ... } 可见 header 以 Map<String, String> 的形式存储键值对信息 body 二进制形式存储,从Source接收到的数据会存储在这里 Source 带着问题 header 里有什么 一些实现类 ExecSource ExecRunnable 主要处理 通过 EventBuilder.withBody 基础创建 Event , 一行一个 Event header 为空 flushEventBatch 中 ChannelProcessor :: processEventBatch...

SuCicada

fuck

“火山般的怒火燃烧着我的心,我的思绪如暴风般激荡,不断地翻涌着。我的身体紧张得像弦张到极限的琴弦,随时都可能爆裂。我的心跳如鼓舞,我的呼吸急促不安。我的脑海中充满了迷雾,我无法让自己冷静下来。我的身体像一个沸腾的锅,压抑不住的爆发。我的怒气如烈焰般燃烧,烧焦了我内心深处的一切。我是烦躁,焦虑和 暴躁的火山,永远不知道什么时候会喷发。我像一阵狂风,吹得人们无法立足。我是一道闪电,瞬间点燃所有的希望。我是一颗炸弹,随时都可能爆炸。我是一段痛苦的乐章,让人难受的和声。我是不安定的海洋,无尽的汹涌。我是烦躁,焦虑和暴躁的火山,永远不知道什么时候会喷发。”

SuCicada

Hbase2 没有org.apache.hadoop.hbase.mapreduce.TableInputFormat

导入 <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-mapreduce</artifactId> <version>${hbase.version}</version> </dependency> 参考链接:https://juejin.cn/post/6844903959585374221

SuCicada

hdu 1022 栈

久违的ac,真是艰难。第一次提交的竟然是直接判断b字符串是否为a的倒序。 #include<iostream> #include<stack> #include<string> using namespace std; int main() { int t; string a,b; while(cin>>t>>a>>b) { stack<char>s; string p; int i=0; t=a.size(); while(t--) { s.push(a[a.size()-t-1]); p+="in\n";//cout<<s.top()<<" "<<b[i]; while(!s.empty()&&s.top()==b[i]) { //cout<<"i"<<i<<endl; s.pop(); p+="out\n"; i++; //cout<<s.size()<<"!!"<<endl; } } if(s.size()==0) cout<<"Yes."<<endl<<p; else cout<<"No."<<endl; cout<<"FINISH"<<endl; } return 0; }

SuCicada

hdu 1062(倒置句中单词)<未戳破的玄学>

pe诅咒,多人见证的玄学,终有一天能破解 初回进阶版 #include<stdio.h> #include<string.h> int main() { int T,i,j,t; char a[1000];//="123 4567"; while(scanf("%d",&T)==1) { while(T--) { getchar(); //setbuf(stdin,NULL);//失败了,暂不知为什么 scanf("%[^\n]",a); i=0;////j是大移动位,i是执行位 //xprintf("origin %s\n"); for(j=0;j<strlen(a);j++) { //printf("!!%s\n",a); if(a[j+1]==' '||a[j+1]=='\0') { //printf("a[] %c\n",a[j]); t=i; for(;i<(j+t+1)/2;i++) { a[i]+=a[j-i+t]; a[j-i+t]=a[i]-a[j-i+t]; a[i]=a[i]-a[j-i+t]; //printf("!%s\n",a); } i=j+2; } } printf("%s\n",a); } //printf("end\n"); } } 临终版 #include<stdio.h> #include<string.h> int main() { int T,i,j,t; char a[1003]; scanf("%d",&T); while(T--) { getchar(); scanf("%[^\n]",a); i=0; for(j=0;j<strlen(a);j++) { if(a[j+1]==' '||(j+1)==strlen(a))) { t=j; while(t>=i) printf("%c",a[t--]); if(a[j+1]==' ') printf(" "); i=j+2; } } printf("\n"); } return 0; }

SuCicada

hdu1002(超超长数字相加)

差点gg,用的是字符串数组来存数,加数,下面是原题 *保留了所有的注释 *没有进行代码缩减 Input The first line of the input contains an integer T(1<=T<=20) which means the number of test cases. Then T lines follow, each line consists of two positive integers, A and B. Notice that the integers are very large, that means you should not process them by using 32-bit integer. You may assume the length of each integer will not exceed 1000. Output For each test case, you should output two lines....

SuCicada

istringstream、ostringstream、stringstream 类介绍 .

见以下链接 istringstream、ostringstream、stringstream 类介绍 . 0、C++的输入输出分为三种: (1)基于控制台的I/O #include<iostream> (2)基于文件的I/O #include<fstream> (3)基于字符串的I/O #include<sstream> str():使istringstream对象返回一个string字符串 stringstream::clear()//多次使用,先清空此对象的流,不能使用stream.str(""); //实际上,它并不清空任何内容,它只是重置了流的状态标志而已 ps:但如果你要在程序中用同一个流,反复读写大量的数据,将会造成大量的内存消耗, 这时候,需要适时地清除一下缓冲 (用 stream.str("") )。

SuCicada

Jetty 报错 Tomcat不报错 maven jetty插件不报错, 可能是jetty版本不统一造成

要在服务器上部署, jetty报错找不见hibernate某个函数, 然而此函数存在. 开发环境为 Intellij jetty插件版本: 9.2.6.v20141205 外置jetty版本: 9.4.21.v20190926 如果你也有类似问题, 不妨试试将jetty版本统一 我将外置jetty降版本后成功 来自这里的启发

SuCicada

js 生成当前日期时间

精简版 var date = new Date(); datetime = date.toLocaleDateString().split('/').slice(2,3).concat( date.toLocaleDateString().split('/').splice(0,2)).join('-') + " " + ( date.toLocaleTimeString().split(' ')[1]=='AM' ? date.toLocaleTimeString().split(' ')[0] : [parseInt(date.toLocaleTimeString().split(' ')[0].split(':')[0]) + 12].concat( date.toLocaleTimeString().split(' ')[0].split(':').splice(1,3)).join(':') ); 人看的版 var date = new Date(); var dd = date.toLocaleDateString().split('/'); var dd = dd.slice(2,3).concat( dd.splice(0,2)).join('-'); var time = date.toLocaleTimeString().split(' '); var time = time[1]=='AM' ? time[0] : [parseInt(time[0].split(':')[0]) + 12].concat(time[0].split(':').splice(1,3)).join(':'); var datetime = dd + " " + time;

SuCicada

leetcode - 12. Integer to Roman with Java

problem 方法一,一位一位判断。 class Solution { public String intToRoman1(int num) { StringBuilder sb = new StringBuilder(); char ooo[] = new char[]{'I','V','X','L','C','D','M'}; int wei = 0; while(num>0){ int n = num %10; if(n<4){ for(int i=0;i<n;i++){ sb.append(ooo[wei*2]); } }else if(n==4){ sb.append(ooo[wei*2+1]); sb.append(ooo[wei*2]); }else if(n==5){ sb.append(ooo[wei*2+1]); }else if(n>5 && n<9){ for(int i=0;i<n-5;i++){ sb.append(ooo[wei*2]); } sb.append(ooo[wei*2+1]); }else if(n==9){ sb.append(ooo[wei*2+1+1]); sb.append(ooo[wei*2]); } wei++; num = num/10; } return sb.reverse().toString(); } 方法二,因为知道最多4位数,所以打表暴力。 public String intToRoman(int num) { String s1[] = new String[]{"","I","II","III","IV","V","VI","VII","VIII","IX"}; String s2[] = new String[]{"","X","XX","XXX","XL","L","LX","LXX","LXXX","XC"}; String s3[] = new String[]{"","C","CC","CCC","CD","D","DC","DCC","DCCC","CM"}; String s4[] = new String[]{"","M","MM","MMM"}; // return s4[(num/1000)%10]+s3[(num/100)%10]+s2[(num/10)%10]+s1[num%10]; return new StringBuilder()....

SuCicada

leetcode - 1. Two Sum with Java

https://leetcode.com/problems/two-sum/submissions/ import java.util.*; class Main { public int[] fun(int []nums,int target) { Map<Integer,Integer> map = new HashMap<>(); for(int i=0;i<nums.length;i++){ int f = target - nums[i]; if(map.get(f)!=null){ return new int[]{map.get(f),i}; }else{ map.put(nums[i],i); } } return null; } public static void main(String[] args) { int []nums = {12,3,3,53,45,7,7,3}; int []res = new Main().fun(nums,10); System.out.println(Arrays.toString(nums)); System.out.println(Arrays.toString(res)); } }

SuCicada

leetcode - 11. Container With Most Water with Java

problem import java.lang.reflect.Method; import java.util.*; class Solution { public int maxArea(int[] height) { int max = 0; int left = 0; int right = height.length-1; int a,b; while(left<right){ a = height[left]; b = height[right]; max = Math.max(max, Math.min(a,b)*(right-left)); if(a > b){ right -- ; }else{ left ++; } System.out.println(left+" "+right+" "); } return max; } } class Main { public static void main(String[] args) throws Exception{ Solution solution = new Solution(); int i = solution....

SuCicada

leetcode - 2. Add Two Numbers with Java

https://leetcode.com/problems/add-two-numbers/submissions/ /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode res = new ListNode(0); ListNode head = res; int flag = 0; while(l1!=null || l2!=null || flag!=0){ int num = (l1==null?0:l1.val) + (l2==null? 0: l2.val) + flag; res.next = new ListNode(num%10); flag = num/10; res = res....

SuCicada

leetcode - 3. Longest Substring Without Repeating Characters with Java

题目链接 import java.lang.reflect.Method; class Solution { /*两个方法都是:end无所谓的在一个一个移动,begin则是追寻之前的循环体留下的信标 关键在于信标是怎么设置下的,第一种方法是每一次都从序列中寻找信标。 第二种直接记录了下来。 一个用时间换空间,一个用空间换时间。 */ public int lengthOfLongestSubstring1(String s) { int sum = 0; int begin = 0; int end = 0; for(end = begin;end<s.length();end++){ /*每次都移动尾指针*/ for(int i = begin;i<end;i++){ /*验证重复,和end处比较,如果没有重复,说明这个子串可以加入end处的字符 而无论是否重复,都不影响移动尾指针end,影响的只是begin的位置。 */ if(s.charAt(i) == s.charAt(end)){ sum = Math.max(sum,end-begin); begin = i+1; break; } } } /*最后的end会指向最后一个的下一个,所以需要再判断一下夹住的是不是大的, eg: ab or aab */ return Math.max(sum,end-begin); } public int lengthOfLongestSubstring2(String s) { int ascii[] = new int[128]; int sum = 0; int begin = 0; for(int i=0;i<s....

SuCicada

leetcode - 4. Median of Two Sorted Arrays with Java

简单做法, 左边哪一些, 右边拿一下, 看谁小拿谁. 但是时间复杂度达不到要求, 虽然在leetcode上也是很快 public double findMedianSortedArrays1(int[] A,int[] B){ /* time complexity: O((m+n)/2+1) */ int m = A.length; int n = B.length; int index1 = 0; int index2 = 0; int num1=0; int num2=0; for(int i=0;i<(m+n)/2+1;i++){ num2 = num1; if(index1 == m){ num1 = B[index2]; index2 ++; }else if(index2 == n){ num1 = A[index1]; index1++; }else if(A[index1] < B[index2]){ num1 = A[index1]; index1++; }else{ num1 = B[index2]; index2++; } } System....

SuCicada

leetcode - 5. Longest Palindromic Substring with Java

题目在我这里 方法一,大暴力 public String longestPalindrome1(String s) { /* very force: O(s.length()^2) 空间复杂度 O(1) */ int i=0; int j=0; boolean flag = false; int maxi = i; int maxj = j; for(i=0;i<s.length();i++){ for(j=s.length()-1;j>i;j--){ if(s.charAt(i)==s.charAt(j)){ int ii = i; int jj = j; for(jj=j;jj>ii;jj--,ii++){ if(s.charAt(ii)!=s.charAt(jj)){ // flag = true; break; } } System.out.println(ii+" - "+jj); if(ii>=jj){ flag = true; break; } } } if(flag){ if(j-i > maxj-maxi){ maxj = j; maxi = i; } } } if(s....

SuCicada